Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

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

Уязвимость в пакетном менеджере Guix, допускающая удалённое выполнение кода в системе

03.07.2026 17:14 (MSK)

В пакетном менеджере Guix выявлены уязвимости (CVE не назначены) в реализации внутренней команды "guix substitute", автоматически вызываемой фоновым процессом guix-daemon при выполнении операций установки пакетов. Команда применяется для загрузки уже собранных бинарных пакетов с внешних серверов с проверкой их целостности при помощи цифровой подписи. Наиболее опасная уязвимость позволяет удалённо организовать выполнение кода на системе пользователя с правами под которыми выполняется фоновый процесс guix-daemon.

Проблема затрагивает все конфигурации с процессом guix-daemon, независимо от того, запускается он с правами root или под непривилегированным пользователем. Для эксплуатации уязвимости достаточно любой попытки загрузки готовых бинарных пакетов с сервера, подконтрольного атакующему. При этом вредоносный сервер не обязательно должен быть явно выбран или указан в настройках пользователя - он может быть определён при помощи опции "--discover", что позволяет осуществить подстановку сервера в ходе MITM-атаки. В конфигурациях, в которых guix-daemon запущен с повышенными привилегиями, локальный пользователь может совершить атаку при возможности подключения к фоновому процессу по Unix-сокету (по умолчанию доступен всем пользователям).

Уязвимость присутствует в обработчике "restore-file", применяемом для распаковки по мере загрузки пакета, не дожидаясь его полной загрузки и верификации загруженного архива по цифровой подписи. Проблема вызвана отсутствием проверки наличия символов ".", "/" и ".." в размещённых в архиве файловых путях. Через подстановку в архив некорректных имён файлов атакующий может добиться записи произвольного файла в любую область файловой системы, насколько позволяют права под которыми выполняется фоновый процесс guix-daemon.

Для организации выполнения своего кода в системе, например, можно добавить автозапускаемый сценарий, такой как "~/.bashrc" или ~/.profile, или изменить файл ~/.ssh/authorized_keys с ключами SSH. Если в многопользовательской системе guix-daemon выполняется под пользователем root, атакующим может перезаписать файл с паролями или системные скрипты.

Возможность создания подставных серверов для распространения вредоносных пакетов вызвана тем, что процедура загрузки метаданных (narinfo) о доступных бинарных пакетах (fetch-narinfos) не осуществляла проверку сертификата сервера, полагаясь на то, что основная часть метаданных заверяется цифровой подписью. Как оказалось, подпись не охватывала URL для загрузки пакета, что позволяло подменить его не нарушая целостности метаданных. В конечном счёте подставной пакет был бы отброшен из-за непрохождения проверки его содержимого по хэшу, заверенному цифровой подписью, но данная проверка производилась после этапа распаковки, на котором проявлялась проблема со спецсимволами в именах файлов.

Помимо команды "guix substitute", уязвимый обработчик "restore-file" задействован в работе команд "guix offload", "guix archive --extract" и "guix challenge", через которые также можно эксплуатировать уязвимость. В качестве обходного пути для блокирования уязвимости предлагается явно указывать опцию "--no-substitutes" во всех командах guix. Исправление уязвимости принято в состав кодовой базы Guix. Пользователям рекомендуется незамедлительно установить сформированные разработчиками обновления guix и guix-daemon.

Помимо отмеченной проблемы в Guix устранено ещё три уязвимости:

  • Возможность подмены бинарных пакетов из-за отсутствия проверки соответствия запрошенного пакета с возвращёнными метаданными в обработчике fetch-narinfos. Уязвимость может использоваться для отдачи устаревшей версии запрошенного пакета, содержащей уязвимости.
  • Определение содержимого первой строки произвольных файлов в системе через передачу локальным пользователем запроса с URI "file://" ("--substitute-urls file:///etc/shadow"). Если guix-daemon выполняется с правами root, то он прочитает запрошенный файл, определит, что он не является метаданными и выведет ошибку, в тексте которой будет упомянута строка, которую не удалось разобрать.
  • Указание специально оформленного имени внешнего репозитория ("../../../../newfile") при выполнении команд "guix pull" и "guix time-machine" позволяет записать данные с информацией о коммите в произвольный существующий файл в файловой системе, если его содержимое напоминает список строк на языке Scheme. Уязвимость может применяться для DoS-атак, но не исключено, что через хитрые манипуляции с псевдо-ФС /proc можно добиться более опасных манипуляций с системой.


  1. Главная ссылка к новости (https://guix.gnu.org/blog/2026...)
  2. OpenNews: Доступен пакетный менеджер GNU Guix 1.5 и дистрибутив на его основе
  3. OpenNews: Уязвимости в пакетных менеджерах Nix, Lix и Guix
  4. OpenNews: Уязвимость в NetworkManager-libreswan и guix-daemon, позволяющие повысить привилегии в системе
  5. OpenNews: Уязвимости в Nix и Lix, позволяющие поднять привилегии в системе
  6. OpenNews: Уязвимость в пакетном менеджере GNU Guix
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65837-guix
Ключевые слова: guix
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (5) RSS
  • 1, sdk3 (?), 18:33, 03/07/2026 [ответить]  
  • +/
    А ведь и в NixOS подобное может быть.
     
  • 3, Аноним (3), 19:01, 03/07/2026 [ответить]  
  • +/
    > для распаковки по мере загрузки пакета, не дожидаясь его полной загрузки и верификации загруженного архива по цифровой подписи.

    Действительно, зачем верификация архива?
    Мы же очень спешим!

    Жаль в статье и огигинально блогпосте не сказано сколько лет жил бекдор

    Но даже применение Scheme не помогло )))))

     
     
  • 4, Аноним (4), 20:07, 03/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если применение Scheme не помогло, то применение языка, который только от выходов спасает, тоже не поможет.
     

  • 5, Аноним (5), 20:17, 03/07/2026 [ответить]  
  • +/
    Есть такая популярная картинка. Самолёт, вид снизу, и много-много пробоин в разных местах. Какие места следует защищать в первую очередь?

    Интересно, как бы выглядели разные дистры в такой концепции)

     

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



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

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