Уязвимости в пакетах с Kea DHCP и cyrus-imapd, позволяющие повысить привилегии в системе

В применяемых различными дистрибутивами конфигурациях DHCP-сервера Kea, развиваемого консорциумом ISC в качестве замены классического ISC DHCP, выявлены уязвимости, в некоторых ситуациях позволяющие локальному пользователю выполнить код с правами root или перезаписать любой файл в системе:

  • CVE-2025-32801 — позволяет локальному пользователю получить root-привилегии в системах, в которых Kea запускается под пользователем root, или получить полный контроль над сервером Kea в системах, запускающих Kea под пользователем с урезанными привилегиями. Атака осуществляется через обращение к REST API, предоставляемому сервисом kea-ctrl-agent и по умолчанию принимающему запросы через localhost:8000. В большинстве конфигураций REST API доступен для всех локальных пользователей системы без прохождения аутентификации.

    Эксплуатация осуществляется через отправку команды set-config, позволяющей управлять настройками всех сервисов Kea. Среди прочего команда может использоваться для изменения параметра «hooks-libraries», влияющего на загрузку дополнительных библиотек-обработчиков. Атакующий может добиться выполнения своего кода в контексте сервисов Kea через подстановку своей библиотеки, функция с атрибутом «constructor» из которой будет вызвана при открытии функцией dlopen().

    
       curl -X POST -H "Content-Type: application/json" 
        -d '{ "command": "config-set", "arguments":
              { "Control-agent": {"hooks-libraries": [{"library": "/home/someuser/libexploit.so"}] }}}' 
        localhost:8000
    
  • CVE-2025-32802 — уязвимость даёт возможность использовать команду config-write в REST API для перезаписи любого файла в системе, насколько позволяют права пользователя, под которым выполняется Kea. Атакующим может контролировать записываемое содержимое, но данные записываются в формате JSON и должны включать корректные настройки Kea. Тем не менее, не исключается, что этого может быть достаточно для запуска команд с правами root через манипуляцию с файлами в каталоге /etc/profile.d.
    
       curl -X POST -H "Content-Type: application/json" 
        -d '{ "command": "config-write", "arguments": { "filename": "/etc/evil.conf" } }' 
        localhost:8000
    

    Отдельно упоминается несколько сценариев использования команды config-write для изменения настроек Kea. Например, можно перенаправить лог файлы в произвольное место файловой системы, организовать спуфинг управляющих UNIX-сокетов сервисов или блокировать работу Kea.

  • CVE-2025-32803 — логи (/var/log/kea*.log), а также файлы /var/lib/kea/*.cvs, содержащие информацию о привязке IP-адресов (DHCP lease) и сопутствующие данные, доступны всем на чтение.

Запуск Kea с правами root практикуется в дистрибутивах Arch Linux,
Gentoo, openSUSE Tumbleweed (до 23 мая), FreeBSD, NetBSD и OpenBSD. В
Debian, Ubuntu и Fedora сервис запускался под отдельным непривилегированным пользователем. В Gentoo пакет с Kea доступен только в unstable-репозитории для архитектуры amd64. Проследить за публикацией обновлений пакетов в дистрибутивах можно на страницах: Debian, Ubuntu, RHEL, openSUSE, Fedora, Gentoo, ALT Linux, Arch, FreeBSD, OpenBSD и NetBSD.

Дополнительно можно отметить уязвимость (CVE-2025-23394), проявляющуюся в пакете с IMAP-сервером Cyrus, поставляемом проектом openSUSE в репозиториях Tumbleweed и Factory. Уязвимость даёт возможность локальному пользователю поднять привилегии с пользователя cyrus до root. Уязвимости присвоен критический уровень опасности (9.8 из 10), но он необоснованно завышен, так как для атаки требуется наличие прав cyrus, которые можно получить через эксплуатацию какой-то иной уязвимости в cyrus-imapd.

Проблема вызвана ошибкой при работе с символическими ссылками в скрипте daily-backup.sh, специфичном дистрибутивов SUSE/openSUSE.
Суть уязвимости в том, что скрипт daily-backup.sh запускается с правами root, но производит запись в каталог /var/lib/imap, в котором может создавать файлы непривилегированный пользователь cyrus. Атака сводится к созданию символической ссылки, указывающей на системный файл (например, можно создать символическую ссылку /var/lib/imap/mailboxes.txt, указывающую на /etc/shadow). Уязвимость устранена в версии пакета cyrus-imapd 3.8.4-2.1.

Источник: http://www.opennet.ru/opennews/art.shtml?num=63324