Sono state individuate vulnerabilità nei gestori di pacchetti GNU Guix, Nix e Lix che consentono l'esecuzione di codice con i diritti degli utenti con cui vengono avviati i job di build (ad esempio, nixbld* in Nix/Lix), il che può essere sfruttato 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 consentire l'accesso alle operazioni di build agli utenti non privilegiati.
Le vulnerabilità sono causate dal fatto che, nell'esecuzione di alcune operazioni per accedere alle directory temporanee di build, sono stati utilizzati percorsi di file completi anziché i descrittori dirfd, permettendo così di sostituire la directory di build situata nella gerarchia /tmp (ad esempio, '/tmp/guix-build-PACKAGE-X.Y.drv-0'). Un uso scorretto di dirfd nella funzione di eliminazione ricorsiva ha portato a una condizione di competizione, in cui un attaccante potrebbe 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 cambiava il proprietario del file puntato dal link simbolico anziché cambiare l'utente per la directory di build.
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à, un attaccante deve essere in grado di eseguire lavori di compilazione arbitrari. Per attaccare sfruttando la vulnerabilità CVE-2025-46415, è sufficiente avere la possibilità di creare file nella directory /tmp sulla macchina di compilazione, mentre per la vulnerabilità CVE-2025-46416 è necessario avere la capacità di eseguire codice nel contesto dello spazio dei nomi principale degli identificatori utente (pid namespace) e della rete (network namespace).
Fonte: opennet.ru
