Der i pakkestyringssystemerne GNU Guix, Nix og Lix er der fundet sårbarheder (Nix, Guix, Lix), som muliggør udførelse af kode med de brugerrettigheder, som de byggeopgaver kører under (f.eks. nixbld* i Nix/Lix). Det kan bruges til at skrive egne data til bygge miljøet og ændre byggeprocessen. Problemerne findes i baggrundsprocesserne guix-daemon og nix-daemon, der anvendes til at organisere adgangen for uprivilegerede brugere til byggeoperationer.
Sårbarhederne skyldes, at der ved udførelsen af visse operationer til adgang til temporære byggedirektorater blev anvendt fulde filstier i stedet for dirfd-deskriptorer. Dette gjorde det muligt at omdanne bygge kataloget, der er placeret i hierarkiet /tmp (f.eks. "/tmp/guix-build-PACKAGE-X.Y.drv-0"). Uhensigtsmæssig brug af dirfd i funktionen til rekursiv sletning førte til en kapløbs tilstand, hvor en angriber kunne indsætte et symbolsk link i det øjeblik, der blev oprettet og ændret ejerskabet af byggekataloget. Ved en succesfuld angreb ændrede guix-daemon/nix-daemon ejerne for filen, der var adresseret via det symbolske link i stedet for at skifte bruger for byggekataloget.
Sårbarhederne er blevet rettet i opdateringerne Lix 2.93, Nix 2.29 og Guix 1.4.0-38.0e79d5b. For at udnytte sårbarhederne skal angriberen have mulighed for at køre vilkårlige byggeopgaver. For angrebet ved hjælp af sårbarheden CVE-2025-46415 er det tilstrækkeligt at kunne oprette filer i /tmp-kataloget på bygge maskinen, mens angreb ved hjælp af sårbarheden CVE-2025-46416 kræver, at angriberen kan køre kode i konteksten af det primære navnerum for bruger-id'er (pid namespace) og netværk (network namespace).
Kilde: opennet.ru
