Description
Gradient is a nix-based continuous integration system. In 1.1.0, when GRADIENT_DISCOVERABLE=true (the default, and the NixOS module default), anyone who can reach /proto can register as a worker without any credentials by sending a fresh, never-registered worker UUID. The resulting session has PeerAuth::Open, i.e. it sees jobs from every organisation, and can immediately NarPush/NarUploaded arbitrary store paths into nar_storage and the cached_path table. This vulnerability is fixed in 1.1.1.
Problem types
CWE-306: Missing Authentication for Critical Function
CWE-345: Insufficient Verification of Data Authenticity
CWE-862: Missing Authorization
Product status
References
github.com/...adient/security/advisories/GHSA-49w6-gf3p-96m2