Nel gestore di pacchetti GNU Guix, Nix e Lix sono state rilevate vulnerabilità (Nix, Guix, Lix) che consentono di eseguire codice con i diritti degli utenti sotto i quali vengono eseguiti i processi di build (ad esempio, nixbld* in Nix/Lix), il che può essere utilizzato per scrivere dati personali nell'ambiente di build e apportare modifiche al processo di build. I problemi sono presenti nei processi in background guix-daemon e nix-daemon, utilizzati per organizzare l'accesso degli utenti non privilegiati alle operazioni di build.
Le vulnerabilità sono causate dal fatto che per alcune operazioni di accesso alle directory temporanee di build sono stati utilizzati percorsi di file completi anziché descrittori dirfd, il che ha permesso di sostituire la directory di build collocata nella gerarchia /tmp (ad esempio, "/tmp/guix-build-PACKAGE-X.Y.drv-0"). L'uso errato di dirfd nella funzione di rimozione ricorsiva ha portato a una condizione di competizione, a causa della quale un attaccante poteva inserire un link simbolico nel momento tra la creazione e la modifica del proprietario della directory di build. In caso di attacco riuscito, guix-daemon/nix-daemon invece di cambiare utente per la directory di build cambiava il proprietario del file a cui il link simbolico puntava.
Le vulnerabilità sono state corrette negli aggiornamenti di Lix 2.93, Nix 2.29 e Guix 1.4.0-38.0e79d5b. Per sfruttare le vulnerabilità, l'attaccante deve avere la possibilità di eseguire lavori di build arbitrari. Per sfruttare la vulnerabilità CVE-2025-46415 è sufficiente la possibilità di creare file nella directory /tmp sulla macchina di build, mentre per la vulnerabilità CVE-2025-46416 è necessario avere la possibilità di eseguire codice nel contesto dello spazio dei nomi degli identificatori degli utenti (pid namespace) e della rete (network namespace).
Fonte: opennet.ru
