The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимости в Nix и Lix, позволяющие поднять привилегии в системе

05.05.2026 14:10 (MSK)

В пакетных менеджерах Nix и Lix выявлена уязвимость, позволяющая выполнить код с правами фонового процесса, который в NixOS и многопользовательских установках выполняется под пользователем root. Проблема (CVE не присвоен) проявляется в фоновом процессе nix-daemon, применяемом для организации доступа непривилегированных пользователей к сборочным операциям и хранилищу пакетов.

Уязвимость возникает из-за отсутствия ограничения рекурсивной обработки директорий в коде для разбора архивов NAR (Nix Archive), что можно использовать для инициирования исчерпания стека сопрограмм и перезаписи содержимого кучи (heap), размещённой после стека без сторожевых страниц памяти. Проблема может быть эксплуатирована любым пользователем, способным устанавливать соединения к nix-daemon. По умолчанию все пользователи имеют такую возможность, что позволяет поднять свои привилегии до пользователя root в многопользовательских установках Nix.

Проблема решена ограничением уровня рекурсии в 64 вложенных директории, добавлением сторожевых страниц памяти между стеком и кучей и реализацией дополнительных проверок символических ссылок в NAR. В Nix уязвимость проявляется начиная с версии 2.24.4 и устранена в выпусках 2.34.7, 2.33.6, 2.32.8, 2.31.5, 2.30.5, 2.29.4, 2.28.7. В Lix уязвимость появилась в выпуске 2.93.0 и устранена в обновлениях 2.93.4, 2.94.2 и 2.95.2. Пакетный менеджер Guix уязвимость не затрагивает.

Помимо этого в опубликованных обновлениях Nix устранена ещё одна уязвимость (CVE отсутствует), которой присвоен средний уровень опасности (4.3 из 10). Проблема проявляется начиная с выпуска Nix 2.24.7 и позволяет организовать запись файлов в область за пределами корневого каталога, в который осуществляется распаковка архива. Уязвимость эксплуатируется через создание в tar-файлах элементов с абсолютными файловыми путями. При распаковке подобных архивов командой "nix-prefetch-url --unpack" или "nix store prefetch-file --unpack" файлы с абсолютными путями извлекаются как есть, без преобразования в относительный путь.

  1. Главная ссылка к новости (https://discourse.nixos.org/t/...)
  2. OpenNews: Уязвимости в пакетных менеджерах Nix, Lix и Guix
  3. OpenNews: В NixOS предложен метод защиты от подстановки бэкдоров, таких как в XZ
  4. OpenNews: Уязвимости в PCP и Nix, позволяющие поднять привилегии в системе
  5. OpenNews: Доступен дистрибутив NixOS 25.11, использующий пакетный менеджер Nix
  6. OpenNews: Опасные уязвимости в GStreamer, CUPS, wolfSSL, OpenSSL, OpenClaw, Nix и ядре Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65364-nix
Ключевые слова: nix, lix
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, anonymous (??), 14:14, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ох, а как его рекламировали!
     
     
  • 2.28, Аноним (28), 18:05, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Уязвимость эксплуатируется через создание в tar-файлах элементов с абсолютными файловыми путями.

    Да не, да как это придумали?!

     

  • 1.2, Аноним (-), 14:38, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    nix это отличная система, можно даже root установить
     
  • 1.3, Аноним (3), 14:57, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Это же самый безопасный NIX!
    Как жи таг?

    Его используют не только школьники, но и военные.
    Наверное последние просто в восторге.

     
     
  • 2.4, Аноним (4), 15:00, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А в чем, собственно, проблема? Доступ к хостам ограничен
     
     
  • 3.6, Аноним (6), 15:42, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > А в чем, собственно, проблема?

    В том, что ты не читал дальше заголовка.

    > Доступ к хостам ограничен

    А у вас там в локалке все админы, да? В новости же написано:

    "Проблема может быть эксплуатирована любым пользователем, способным устанавливать соединения к nix-daemon. По умолчанию все пользователи имеют такую возможность, что позволять поднять свои привилегии до пользователя root в многопользовательских установках Nix."

     
     
  • 4.8, Аноним (4), 15:57, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >А у вас там в локалке все админы, да? В новости же написано:
    >"Проблема может быть эксплуатирована любым пользователем, способным устанавливать соединения к nix-daemon. По умолчанию все пользователи имеют такую возможность, что позволять поднять свои привилегии до пользователя root в многопользовательских установках Nix."

    Дак к nix-daemon доступ только с хоста

     
     
  • 5.21, Аноним (21), 17:36, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда у тебя только локалхост с единственным пользователем это действительно не проблема. Но линуксом (втч и этим) пользуются не только на локалхостах. SELinux на Nix не взлетел, видите ли он Дольстре ломает умозрительную иммутабельность /nix/store (а номера инодов и адреса физических блоков не ломают? Того же порядка мета-информация ведь), а добавить метки в NAR-файлы у всех лапки; AppArmor с большего тоже никак, хотя и был признан более подходящим под идеи Nix. В NixOS желающих добавить модуль для SELinux тоже не нашлось, пришлось в своё время написать для кастомера самому, к счастью это несложно. И это дистрибутив с передовыми идеями.


    На сегодняшний день, если нужно что-то чуть менее игрушечное, чем юниксовое ugo, приходится брать RH. Там хоть SELinux осилили с грехом пополам.

     
     
  • 6.23, Аноним (4), 17:41, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Напомни, почему твое мнение важно?
     
     
  • 7.30, Аноним (30), 18:09, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Почему важно, что ты используешь nix?
     
  • 7.31, Аноним (30), 18:11, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>SELinux на Nix не взлетел
    >Напомни, почему твое мнение важно?

    Это объясняет реакцию.

     
  • 6.25, Аноним (4), 17:49, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Когда у тебя только локалхост с единственным пользователем это действительно не проблема.

    А почему это проблема с 20 000 хостами и 1000 человек в конторе?

     
     
  • 7.33, Аноним (21), 18:20, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Смотря что на тех 20к хостах. Если это по 20 локалхостов на каждого сотрудника, то проблемы всё ещё нет.
     
  • 6.32, Аноним (32), 18:17, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >В NixOS желающих добавить модуль для SELinux тоже не нашлось, пришлось в своё время написать для кастомера самому, к счастью это несложно.

    Если вы его написали, значит вы и есть желающий. У вас же сохранились наработки? Или вы всё таки не написали?

     
     
  • 7.47, Аноним (21), 03:08, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я писал не для сообщества потребителей, а для платящего клиента под его требования. Не надо меня в желающие записывать. Я за бесплатно только комменты на опеннете пишу.
     
  • 4.27, Аноним (27), 18:01, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В том, что ты не читал дальше заголовка.

    Кажется, это ты не читаешь. Что мешает запускать nix не от рута?

     
     
  • 5.34, Аноним (21), 18:21, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что мешает не от рута подменить в /nix/store бинарник, который ты от рута запускаешь?
     
     
  • 6.37, Аноним (4), 18:45, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    каталог только на чтение
     
     
  • 7.48, Аноним (21), 03:09, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > каталог только на чтение

    Да? А как туда nix-daemon пишет не расскажешь? Неужели через libastral?

     
  • 2.17, Сладкая булочка (-), 16:57, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > но и военные

    Кто сказал?

     
  • 2.38, Дворник (??), 19:20, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Норм там всё. Трудно представить NIXOS-систему, где в конфиге не прописано что-то типа

    'nix.settings.allowed-users = [ "@wheel" ];'

     
     
  • 3.44, ruroruro (ok), 21:14, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мне интересно, даже если не установлен allowed-user, кажется что эксплоит все равно не должен работать. Потому что вроде как по дефоту список trusted-users - пустой (а пользователи не находящиеся в категории trusted-users по идее могут распаковывать только подписанные NAR архивы).

    То есть кажется, что для того чтобы "любой пользователь" мог воспользоваться этим эксплоитом, этот пользователь должен либо убедить админов добавить свои ключи в trusted-public-keys, либо каким-то образом подписать "зловредный" NAR оффициальными ключами cache.nixos.org. Что в принципе возможно, но все-таки уже не настолько страшно звучит как "Проблема может быть эксплуатирована любым пользователем, способным устанавливать соединения к nix-daemon". Или я что-то упускаю?

     
     
  • 4.52, Дворник (??), 08:58, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > могут распаковывать только подписанные NAR архивы).

    Да, насколько я тоже понимаю, всё верно.

    NAR-ы на деревьях не растут, ключь от cache.nixos.org по идее не особо публичен..

     
  • 2.53, user1985 (?), 09:10, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Кто тебе говорил что Nix безопасен?
     

  • 1.7, Аноним (7), 15:42, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Выглядит как нечто не затрагивающее 99.9% пользователей NixOS
     
     
  • 2.9, Alladin (?), 16:05, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если так то их получается нет?
     
     
  • 3.12, Аноним (4), 16:13, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    есть и что?
     

  • 1.18, Аноним (30), 17:06, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Неограниченная рекурсия. Детская ошибка. Квалификация автора и сопровождающего?
     
  • 1.22, анон2 (?), 17:36, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    зато воспроизводимо!
     
  • 1.24, pashev.ru (?), 17:44, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Lix — какое-то невнятное нечто.
     
     
  • 2.35, Аноним (35), 18:28, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В чем отличие от Nix?
     
     
  • 3.40, Аноним (40), 20:12, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Розовый сайт и будут переходить на раст.
     
  • 3.46, ruroruro (ok), 22:34, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Отличия - в основном организационно-политические С одной стороны, там действите... большой текст свёрнут, показать
     
     
  • 4.49, Аноним (21), 03:13, 06/05/2026 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 5.50, ruroruro (ok), 03:57, 06/05/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.26, Аноним (32), 18:00, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Проблема решена ограничением уровня рекурсии в 64 вложенных директории, добавлением сторожевых страниц памяти между стеком и кучей

    Опять кто-то не уследил за размерам буфера. Непонятно только, зачем число хардкодить.

     
     
  • 2.29, Аноним (28), 18:07, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Непонятно только, зачем число хардкодить.

    Ну как же, системы сейчас - 64-битные, адресного пространства - бит 48 как минимум. Вот и ввели цифру 64 для максимального количества каталогов.

     

  • 1.36, Дворник (??), 18:33, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так-то кто имеет уже доступ к nix-daemon, ох, к чему только ни имеет уже его..

    Но да, тут уже формально. Имеет.

     
  • 1.39, Аноним (40), 20:11, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Lix is designed for evolution of its codebase. Lix already uses the more modern meson build system, which improves developer usability and decreases build times. Plans include a gradual, piecewise introduction of the memory-safe Rust programming language – to both supplement and replace sections of the current C++ codebase.

    Не, спасибо, не надо.

     
  • 1.42, Аноним (42), 21:00, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да вы блин скажите, нужно учить этот их язык для пользования ос или для всего есть дефолтные конфиги, которые можно просто поправить по доке?
     
     
  • 2.45, morphe (?), 22:20, 05/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почти всё можно настроить не изучая язык, список настроек огромен:
    https://search.nixos.org/options

    Язык нужен только для сокращения бойлерплейта

     

  • 1.43, Аноним (43), 21:03, 05/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > исчерпания стека сопрограмм и перезаписи содержимого кучи

    GNU malloc наносит ответный удар со своим выделением переменных в конце стека "для скорости"?

     
     
  • 2.55, Аоним (?), 18:55, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В начале кода вызванного через call кода присутствует стандартный механизм корректировки SP под следующий call. Если кто-то думает, что можно разместить кучу в космосе, а не в каком-то удаление (не в плотную) от стека программы, то он заблуждается. А загораживаться через сег. регистры в едином пространстве при стандартных вызовах - глупо. Поэтому "абстракные" думают, что существует бесконечная рекурсия - она ограничена способностью корректировать указатель стэка.
     

  • 1.54, Аноним (30), 13:32, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где security tracker NixOS?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру