W menedżerach pakietów GNU Guix, Nix i Lix zidentyfikowano luki (Nix, Guix, Lix), które umożliwiają wykonanie kodu z uprawnieniami użytkowników, pod którymi uruchamiane są zadania kompilacji (np. nixbld* w Nix/Lix), co może być wykorzystywane do zapisu własnych danych w środowisku kompilacyjnym i wprowadzenia zmian w procesie kompilacji. Problemy występują w procesach w tle guix-daemon i nix-daemon, stosowanych do organizacji dostępu nieuprzywilejowanych użytkowników do operacji kompilacyjnych.
Luki są spowodowane tym, że podczas wykonywania niektórych operacji do uzyskania dostępu do tymczasowych katalogów kompilacyjnych używane były pełne ścieżki do plików, a nie deskryptory dirfd, co pozwalało na podmianę katalogu kompilacyjnego umieszczonego w hierarchii /tmp (np. '/tmp/guix-build-PACKAGE-X.Y.drv-0'). Niewłaściwe wykorzystanie dirfd w funkcji rekurencyjnego usuwania prowadziło do stanu wyścigu, przez który atakujący mógł wstawić symlink w momencie między utworzeniem a zmianą właściciela katalogu kompilacyjnego. Przy udanym ataku guix-daemon/nix-daemon zamiast zmiany użytkownika dla katalogu kompilacyjnego zmieniało właściciela pliku, do którego kierowała symlink.
Luki zostały usunięte w aktualizacjach Lix 2.93, Nix 2.29 i Guix 1.4.0-38.0e79d5b. Aby wykorzystać te luki, atakujący musi mieć możliwość uruchamiania dowolnych prac kompilacyjnych. Do ataku przy użyciu luki CVE-2025-46415 wystarczy możliwość tworzenia plików w katalogu /tmp na maszynie kompilacyjnej, natomiast do luki CVE-2025-46416 konieczne jest posiadanie możliwości uruchamiania kodu w kontekście głównej przestrzeni nazw identyfikatorów użytkowników (pid namespace) i sieci (network namespace).
Źródło: opennet.ru
