Домой Софт macOS и Linux Уязвимости в Nix и Lix позволяют поднять привилегии в системе

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

Критический баг в nix-daemon открывает доступ к root-правам, а дополнительная ошибка в командах префетчинга позволяет записывать файлы вне целевых директорий.

Уязвимости в Nix и Lix позволяют поднять привилегии в системе
Уязвимости в Nix и Lix позволяют поднять привилегии в системе — иллюстрация к материалу. Источник: linux.org.ru

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

Суть уязвимости и механизм эксплуатации

Причиной возникновения бреши стала ошибка в коде, отвечающем за разбор архивов формата NAR (Nix Archive). В частности, отсутствие ограничений на глубину рекурсивной обработки вложенных директорий позволяет спровоцировать исчерпание стека сопрограмм.

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

Исправления и версии

Разработчики уже подготовили патчи, которые ограничивают уровень рекурсии 64 вложенными директориями, внедряют сторожевые страницы памяти между стеком и кучей, а также усиливают проверки для символических ссылок внутри архивов.

  • 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

В рамках тех же обновлений была устранена ещё одна проблема со средним уровнем опасности (4.3 по шкале CVSS). Она касается некорректной обработки путей при распаковке архивов с помощью команд nix-prefetch-url --unpack или nix store prefetch-file --unpack.

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

Источник: https://www.linux.org.ru