În managerii de pachete GNU Guix, Nix și Lix au fost descoperite vulnerabilități (Nix, Guix, Lix) care permit executarea de cod cu drepturile utilizatorilor sub care sunt rulate sarcinile de compilare (de exemplu, nixbld* în Nix/Lix), ceea ce poate fi folosit pentru a scrie date proprii în mediul de compilare și a aduce modificări în procesul de compilare. Problemele sunt prezente în procesele de fundal guix-daemon și nix-daemon, utilizate pentru a organiza accesul utilizatorilor fără privilegii la operațiunile de compilare.
Vulnerabilitățile sunt cauzate de faptul că în timpul executării unor operațiuni pentru accesarea directorilor temporari de compilare s-au folosit căi complete de fișiere în loc de descriptorii dirfd, ceea ce a permis substituirea directorului de compilare situat în ierarhia /tmp (de exemplu, „/tmp/guix-build-PACKAGE-X.Y.drv-0”). Utilizarea incorectă a dirfd în funcția de ștergere recursivă a dus la o stare de competiție, ceea ce a permis atacatorului să introducă un simbol în momentul dintre crearea și schimbarea proprietarului directorului de compilare. În cazul unui atac de succes, guix-daemon/nix-daemon, în loc să schimbe utilizatorul pentru directorul de compilare, schimba proprietarul fișierului la care se referă simbolul.
Vulnerabilitățile au fost remediate în actualizările Lix 2.93, Nix 2.29 și Guix 1.4.0-38.0e79d5b. Pentru a exploata vulnerabilitățile, atacatorul trebuie să aibă capacitatea de a rula lucrări de compilare arbitrare. Pentru un atac utilizând vulnerabilitatea CVE-2025-46415 este suficient să aibă posibilitatea de a crea fișiere în directorul /tmp pe mașina de compilare, iar pentru vulnerabilitatea CVE-2025-46416 este necesar să aibă capacitatea de a rula cod în contextul spațiului de nume de identificatori de utilizatori (pid namespace) și al rețelei (network namespace).
Sursa: opennet.ro
