The OpenNET Project / Index page

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

Уязвимости в пакетных менеджерах Nix, Lix и Guix

25.06.2025 12:45

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

Уязвимости вызваны тем, что при выполнении некоторых операций для доступа к временным сборочным каталогам использовались не дескрипторы dirfd, а полные файловые пути, что позволяло подменить сборочный каталог, размещаемый в иерархии /tmp (например, "/tmp/guix-build-PACKAGE-X.Y.drv-0"). Неверное использование dirfd в функции рекурсивного удаления приводило к состоянию гонки, из-за которого атакующий мог подставить символическую ссылку в момент между созданием и изменением владельца сборочного каталога. При успешной атаке guix-daemon/nix-daemon вместо смены пользователя для сборочного каталога менял владельца для файла, адресуемого символической ссылкой.

Уязвимости устранены в обновлениях Lix 2.93, Nix 2.29 и Guix 1.4.0-38.0e79d5b. Для эксплуатации уязвимостей атакующий должен иметь возможность запуска произвольных сборочных работ. Для атаки с использованием уязвимости CVE-2025-46415 достаточно возможности создания файлов в каталоге /tmp на сборочной машине, а для уязвимости CVE-2025-46416 необходимо иметь возможность запуска кода в контексте основного пространств имён идентификаторов пользователей (pid namespace) и сети (network namespace).

  1. Главная ссылка к новости (https://lists.gnu.org/r/guix-d...)
  2. OpenNews: Уязвимости в PCP и Nix, позволяющие поднять привилегии в системе
  3. OpenNews: В NixOS предложен метод защиты от подстановки бэкдоров, таких как в XZ
  4. OpenNews: Уязвимость в пакетном менеджере GNU Guix
  5. OpenNews: Опасные уязвимости в Firejail, Connman и GNU Guix
  6. OpenNews: Уязвимость в NetworkManager-libreswan и guix-daemon, позволяющие повысить привилегии в системе
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63464-guix
Ключевые слова: guix, nix
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, IMBird (ok), 14:03, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Эти уязвимости кого надо уязвимости.
    Нужно больше дистрибутивов и больше систем, чтобы никто адекватный об аудите даже не задумывался.

    Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

     
     
  • 2.10, bOOster (ok), 14:21, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И в целом там и о расте адекватно задумываются - как о возможности, а не панацее..
     
     
  • 3.18, Аноним (-), 14:50, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Исходный код раст открыт? Как он с GNU уживётся? Если проприетарный раст будет использоваться, то GNU уже будет не торт. Весь смысл потеряется. Люди тогда прежде чем покупать устройство под PureOS, могут и задуматься - а зачем? Устройства Librem не такие уж и дешевые как кажутся: https://puri.sm/products/
     
  • 2.12, Аноним (12), 14:28, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

    И самые неуловимые, как Джо.

     
     
  • 3.35, Аноним (35), 15:45, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это раньше было что Джо неуловимый потому что никому не нужен. По текущим нормам корпорации за информацию сколько любой самый ненужный Джо с дивана вставал уже давятся.
     
  • 2.16, Аноним (-), 14:44, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Больше пакетных менеджеров и пакетов, пакетов, пакетов!
     
  • 2.19, Аноним (19), 14:50, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

    В FreeBSD до недавнего времени скачивание и сборка производились под рутом, без какого-либо ограничения доступа к системе.

     
     
  • 3.43, Аноним (43), 16:44, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Главное, не забывать повторять услышанное в перепеве Рабиновича кстати, сборка... большой текст свёрнут, показать
     
     
  • 4.61, Аноним (61), 00:36, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Главное, не забывать повторять услышанное в перепеве Рабиновича

    Вам же хорошо сказано
    >до недавнего времени

    Посмотрите на дату коммита
    >2018, 2016

    Когда там bsd появилась, в каком году? Солько лет так жили - 10, 20, а то может и все 40?

     
  • 3.55, Аноним (55), 22:36, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Всю жизнь рут требовался только для make install.
     
  • 2.32, Аноним (61), 15:38, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

    Топорные топоры из каменного века, не способные почти ни на что?

     
     
  • 3.36, Аноним (35), 15:48, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Иногда топоры покрайней мере надёжные, а все новомодные пукалки не вызывают доверия.
     
     
  • 4.40, Аноним (61), 15:56, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я надеюсь, что еду себе вы готовите на костре, дрова для которого, срублены каменным топором. Мангал, печь и другихе хипсторские смузитехнологии не используете.
     
  • 4.44, Голум (?), 17:07, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Они у вас лишь иногда надёжные? А всё остальное время тоже не вызывают доверия?
     

  • 1.2, Анонимище (?), 14:04, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Какие созвучные имена пакетных менеджеров, прямо как из сказки про трех поросят
     
     
  • 2.6, Аноним (-), 14:12, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Интересеное у тебя воображение. У меня эти названия ни с чем не ассоциируются.

    Ниф-ниф, Наф-наф, Нуф-нуф. Это поросята из иностранной сказки. Русские свиней называли - Машка, Боря, Борис. Звали свиней  словами: чух-чух.! Если бы среди 3-х немецких свиней била русская свинья, то её бы звали "Чух-чух".

     
     
  • 3.13, Анонимище (?), 14:29, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть просто такой троп, когда у близких сущностей похожие имена. Например, одну сестру могу звать Лина, другую Луна, а третью Лала. Сказка про трех поросят это просто широкоизвестный пример (как бы обычно предпологается, что они братья) этого тропа
     
  • 3.14, Аноним (12), 14:32, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >Ниф-ниф, Наф-наф, Нуф-нуф

    Это автор сказки солевым был.

     
  • 3.25, Аноним (25), 15:15, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересеное у тебя воображение.
    > У меня эти названия ни с чем не ассоциируются.

    У тебя воображение не интересное или вообще отсутствует. И при чём здесь "иностранные" и "русские" - вообще непонятно.

     
  • 3.30, ryoken (ok), 15:33, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У поросят был старший брат - Нах-Нах. Но, послухам, на момент написания сказки он уже сидел.
     
     
  • 4.38, Аноним (35), 15:49, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Зато волк его не достал.
     
  • 3.62, Аноним (-), 00:36, 26/06/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.33, Кошкажена (?), 15:38, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Какие созвучные имена пакетных менеджеров, прямо как из сказки про трех поросят

    Я злой и страшный серый волк, я в поросятах^Wпакетных менеджерах знаю толк!

     

  • 1.3, Fracta1L (ok), 14:08, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Фоновые процессы для установки программ, вот это клиника
     
     
  • 2.8, Аноним (-), 14:14, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему?
     
  • 2.17, Аноним (17), 14:49, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Фоновые процессы для монтирования/размонтирования, для вывода звука, для вывода окошек, для показа диалога "Открыть файл", для отправки сообщения в третий процесс через шину, для всего подряд. А ты тут про какую-то установку программ.
     
     
  • 3.26, Fracta1L (ok), 15:17, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это всё можно понять, потому что для нормальной комфортной работы этих подсистем нужно ловить события. А какие к чёрту события могут быть у менеджера пакетов, что это потребовало демона?
     
     
  • 4.27, 12yoexpert (ok), 15:24, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    в унбунте до сих пор нельзя выключить попапы обновлений без rm -rf что-то-там?
     
  • 4.29, Аноним (17), 15:25, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Событие "собери/скачай такой-то дериватив". Это позволяет обычным пользователям пользоваться услугами сборщика. Почему так сделано? Ответ в твоем комменте: "для нормальной комфортной работы".
     
  • 4.34, Аноним (61), 15:44, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >А какие к чёрту события могут быть у менеджера пакетов, что это потребовало демона?

    Сразу видно ыксперда. Событие - пользователь инициировал сборку чего-то там. Далее, от непривилегированного пользователя запускается скачиваение и сборка всего этого дела в чистом окружении. Добавим сюда тот факт, что это системный пакетный менеджер, который кеширует результаты сборок, делая их разделяемыми для всей системы целиком, а не только для текущего проекта, удаляет ставшие ненужными пакеты, занимается перезапуском различных служб и так далее.

     
     
  • 5.48, Аноним (48), 19:22, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > и так далее

    и для этого всего нужен демон? это же обычный сценарий, который можно и по крону запустить, демон зачем?

     
     
  • 6.52, Аноним (61), 21:11, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А крон давно демоном быть перестал Когда я вызываю nix, то хочу получить резуль... большой текст свёрнут, показать
     
     
  • 7.58, Аноним (48), 23:06, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    так для него это необходимость, один демон, исполняющий периодически необходимые... большой текст свёрнут, показать
     
     
  • 8.59, Аноним (61), 00:27, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Количество демонов с начала 70-ых возросло Очень сильно Тот же snap из убунты,... большой текст свёрнут, показать
     
     
  • 9.63, Аноним (48), 01:01, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Дайте определение понятия демон служба , я думаю вы не понимаете значение этого... большой текст свёрнут, показать
     
     
  • 10.67, Аноним (17), 03:23, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если есть меж-процессное взаимодействие, значит процессов как минимум два На эт... большой текст свёрнут, показать
     
  • 8.60, Аноним (61), 00:32, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    emacs --daemon передаёт вам пламенный привет Условный vs code или phpstorm тоже... текст свёрнут, показать
     
     
  • 9.64, Аноним (48), 01:15, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот уже прогресс, а теперь вопрос, возможно ли клиент-серверную архитектуру П... большой текст свёрнут, показать
     

  • 1.4, Аноним (4), 14:10, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О про Nix.

    Все пытаюсь узнать - можно ли одной общей настройкой сделать сборку своего пакета во множестве вариантов (все используемые библиотеки всех версий)?

    Типа написал один конфиг сборки - и генерируешь пакеты своей программы на каждую комбинацию библиотек.

    Иначе смысла для разработчиков в Nix особо не вижу.

     
     
  • 2.11, Amerigo (?), 14:26, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Flakes + Overlays вам в помощь.
     
     
  • 3.20, Аноним (4), 14:55, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Быстро просмотрел. Но, кажется, там нет возможности задать использование разных версий библиотек в разных комбинациях.
     
  • 2.23, Аноним (17), 15:06, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > все используемые библиотеки всех версий

    Это ж сколько там будет версий! Попробуй взять калькулятор и рассчитать, сколько миллиардов сборок тебе придется сделать.

     
  • 2.31, Аноним (61), 15:36, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Типа написал один конфиг сборки - и генерируешь пакеты своей программы на каждую комбинацию библиотек.

    Можно, map reduce изобретён. Ну разумеется, если исходный код и компилятор такое переживёт, со стороны nix таких ограничений нет. Всё же nix это функциональный язык.

     
  • 2.37, Аноним (17), 15:48, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вообще, в никсе так не принято. (Да и нигде так не принято.) Ты оформляешь пакет в виде функции, которая: 1) принимает все свои зависимости во входном attrset, 2) возвращает дериватив. Далее этот пакет вызываешь при помощи pkgs.callPackage. И все, финальный пакет соберется с зависимостями, подтянутыми из pkgs. Но если кому-то приспичило подменить одну зависимость на другую, он сделает your-package.override { libfoo = libfoo-123; }. Пытаться сразу собирать пакет со всеми возможными комбинациями действительно приведет к миллиардам сборок: месяцами будешь тестировать 24/7 и платить за электричество.
     
     
  • 3.41, Аноним (61), 16:03, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >А вообще, в никсе так не принято. (Да и нигде так не принято.)

    Не совсем. Вот есть, например pkgs.pkgsMusl, который хранит в себе дерево пакетов для musl. Или есть pkgs.linuxPackages, который позволяет как выбрать версию ядра, так и сразу какой-то набор патчей. Так что уже прямо в репозитории есть готовые пакеты несколькоих разных версий.

     
  • 3.57, Аноним (57), 22:57, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Пытаться сразу собирать пакет со всеми возможными комбинациями действительно приведет к миллиардам сборок: месяцами будешь тестировать 24/7 и платить за электричество.

    Очевидно это в общем случае.

    В частном - у меня используется, скажем, 5 библиотек для которых выпускают версии раз в год - два.

    В итоге сборок будет много - но не бесконечно много.

     

  • 1.5, Аноним (-), 14:11, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это тот самый NIX который используется в самой лучшей (по мнению её фанатов) NixOS ?
    Которая самая удобная и безопасная, не то что ваши эти...
     
     
  • 2.7, Аноним (-), 14:14, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага.
     
  • 2.9, Аноним (9), 14:19, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что же безопасно...
     

  • 1.15, Шарп (ok), 14:40, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Лабораторная уязвимость. В реальности недостижимо.
     
     
  • 2.22, Аноним (4), 14:58, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то стандартная. Делаешь свою сборку пытающуюся использовать эту уязвимость. 100000 соберут - у одного сработает. Все - профит.
     
  • 2.24, User (??), 15:12, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Поди што и чинить не надо?
    Хотя... не rhel с ubuntu'ой - на той машине с NIX'ом один черт, ничего интересного нет, а те 5 сольдо что есть - проще выцыганить звонком про "безопасный счет ФСБ"...
     

  • 1.46, Аноним (46), 17:46, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не доверяю я всем этим никсам. Раздражает все это жуткое дробление, каждый норовит придумать свою систему сборки, свой линукс, свой язык. Думает, что лучше других знает как надо программировать.
    А простве работяги от этого страдают, захламляют свои системы всяким барахлом, нужным для одного конкретного пакета.
    Думаю, что nih синдром пора классифицировать как реальное заболевание и принудительно лечить на рабочих местах(и организовать патрули в местах проживания/скопления программистов)
     
     
  • 2.47, аноним1277zx (?), 18:01, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вам лишь бы зарегулировать и патрулей наставить, ей богу.
     
  • 2.53, Аноним (61), 21:14, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Типичный вахтёр - сам ничего не делает, а другим запрещает. Осуждаю.
     

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



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

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