Уразливості пакетних менеджерів GNU Guix, Nix і Lix
Уразливості в пакетних менеджерах GNU Guix, Nix і Lix: небезпека у сборочних процесах
У пакетних менеджерах GNU Guix, Nix і Lix було виявлено критичні уразливості, які дозволяють зловмисникам виконувати код з правами користувачів, під якими запускаються сборочні завдання. Ця проблема створює серйозну загрозу для цілісності сборочного середовища та безпеки процесу компіляції програмного забезпечення.
Суть уразливостей у пакетних менеджерах
Проблема стосується фонових процесів guix-daemon і nix-daemon, які використовуються для організації доступу непривілейованих користувачів до сборочних операцій. Наприклад, у системі Nix це користувачі nixbld*.
Виявлені уразливості дозволяють зловмисникам записувати свої дані у сборочне середовище та вносити несанкціоновані зміни до процесу збирання програм. Зрештою, це може призвести до компрометації всього програмного забезпечення, що будується.
Технічні деталі проблеми
Корінь проблеми полягає в неправильному підході до доступу до тимчасових сборочних каталогів. Замість безпечних дескрипторів dirfd, системи використовували повні файлові шляхи. Це давало можливість підміняти сборочний каталог.
Такі каталоги зазвичай розміщуються в ієрархії /tmp, наприклад “/tmp/guix-build-PACKAGE-X.Y.drv-0”. Неправильне використання dirfd у функції рекурсивного видалення створювало стан гонки. В результаті, зловмисник міг підставити символічне посилання у момент між створенням та зміною власника сборочного каталогу.
При успішній атаці daemon-процес замість зміни користувача для сборочного каталогу змінював власника для файлу, що адресується символічним посиланням.
Умови для експлуатації
Для використання цих уразливостей зловмисник повинен мати можливість запуску довільних сборочних робіт. Однак різні варіанти атак мають додаткові вимоги:
- Для атаки з використанням уразливості CVE-2025-46415 достатньо можливості створення файлів у каталозі /tmp на сборочній машині
- Для уразливості CVE-2025-46416 необхідно мати можливість запуску коду в контексті основного простору імен ідентифікаторів користувачів (pid namespace) та мережі (network namespace)
Оновлення та виправлення
Уразливості вже усунено в наступних оновленнях:
- Lix 2.93
- Nix 2.29
- Guix 1.4.0-38.0e79d5b
Користувачам рекомендується якнайшвидше оновити свої системи до останніх версій для запобігання можливих атак.
Більше інформації про ці уразливості можна знайти на офіційних сайтах GNU Guix, Nix та Lix.
Враховуючи критичність виявлених проблем, адміністраторам систем з використанням цих пакетних менеджерів слід негайно застосувати оновлення безпеки, щоб захистити цілісність своєї інфраструктури розробки програмного забезпечення.