CVE: CVE-2026-79993
Продукт: Ubuntu
Дата публикации: 16.09.2026
Критичность: HIGH
CVSS: 7.5 (3.1)
EPSS: 0,61%; процентиль 47,67%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Apache ZooKeeper обрабатывает opcode deleteContainer (0x14/20) без проверки ACL и сессии, что позволяет удалённому клиенту удалять пустые постоянные znodes. В Ubuntu затронуты дистрибутивные сборки zookeeper от 3.8.0 до 3.8.6 и от 3.9.0 до 3.9.5. Исправление доступно в версиях 3.8.7 и 3.9.6, а для Ubuntu — через обновление пакетов из репозиториев безопасности.
Основные характеристики
Риск состоит в том, что нарушен контроль доступа к операции удаления znodes: любой клиент, способный открыть TCP-сессию на порту ZooKeeper (по умолчанию 2181), может удалить пустые постоянные узлы независимо от ACL. Это не влияет на чтение или запись данных, но позволяет повредить структуру дерева данных и нарушить работу приложений, зависящих от этих узлов.
- Тип ошибки: CWE-862 Missing authorization check
- CVSS 3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N(7.5, HIGH)
- Условие атаки: доступ к TCP-порту ZooKeeper (2181) без необходимости в ACL или аутентификации
- Факт эксплуатации: не подтверждён в предоставленных источниках
- EPSS: 0,61% (процентиль 47,67%)
Какие продукты и версии затронуты
В Ubuntu затронуты дистрибутивные сборки пакета zookeeper.
- Ubuntu:Pro:14.04:LTS — zookeeper 3.4.5+dfsg-1ubuntu0.1~esm3 и связанные пакеты (libzookeeper-java, libzookeeper-mt2, libzookeeper-st2, libzookeeper2, python-zookeeper, zookeeper-bin, zookeeperd)
- Ubuntu:Pro:16.04:LTS — zookeeper 3.4.8-1ubuntu0.1~esm2 и связанные пакеты
- Ubuntu:Pro:18.04:LTS — zookeeper 3.4.13-3ubuntu0.1~esm1 и связанные пакеты
- Ubuntu:20.04:LTS — zookeeper 3.4.13-5ubuntu0.1 и связанные пакеты (libzookeeper-java, libzookeeper-mt2, libzookeeper-st2, python3-zookeeper, zookeeper-bin, zookeeperd)
- Ubuntu:22.04:LTS — zookeeper 3.4.13-6ubuntu4.1 и связанные пакеты
- Ubuntu:24.04:LTS — zookeeper 3.9.1-1build2 и связанные пакеты
- Ubuntu:26.04:LTS — zookeeper 3.9.5-1 и связанные пакеты
Причина уязвимости
Операция удаления znode обрабатывается через opcode deleteContainer (0x14/20). Этот путь полностью пропускает проверку сессии и проверку DELETE ACL, которые применяются при обычном удалении (OpCode 2).
В результате любой клиент, открывающий TCP-сессию на порту ZooKeeper, может отправить raw-запрос deleteContainer и удалить пустой постоянный znode. Операция не требует аутентификации и не проверяет права доступа к узлу или его родительскому пути.
Как работает атака
Атакующий устанавливает TCP-соединение с портом ZooKeeper (2181 по умолчанию) и формирует raw-протокольный запрос с opcode deleteContainer (20).
Сервер обрабатывает этот opcode без проверки ACL и без валидации сессии. Если указанный znode пустой, он удаляется из дерева данных. Это касается регулярных постоянных узлов, container nodes и TTL nodes.
После удаления узла приложения, зависящие от этого пути, могут получить ошибку или некорректно работать, если они ожидают наличие данного znode.
Условия успешной эксплуатации
Для успешной эксплуатации необходимы следующие условия:
- Доступ к TCP-порту ZooKeeper (2181 по умолчанию) из внешней сети или из доверенного сегмента
- Знание пути к целевому пустому постоянному znode
- Отсутствие необходимости в аутентификации и ACL для отправки raw-запроса deleteContainer
Возможный сценарий атаки
Сценарий предполагает, что ZooKeeper доступен по TCP из сети, где не требуется отдельная аутентификация для подключения.
Атакующий отправляет raw-протокольный запрос с opcode deleteContainer (20) на указанный znode. Сервер обрабатывает запрос без проверки ACL и удаляет пустой узел.
Если зnodes используются как маркеры состояния, конфигурационные пути или точки для обнаружения сервисов, их удаление может привести к сбою работы зависимых приложений.
Есть ли публичный эксплойт
В предоставленных источниках нет информации о публичном эксплойте, PoC или подтверждённой эксплуатации CVE-2026-79993.
Отсутствие сведений в официальных источниках не означает, что эксплойт не существует. Для оценки актуальной угрозы рекомендуется отслеживать обновления репозиториев безопасности и мониторинг уязвимостей.
Признаки эксплуатации
Специфичные IOC для CVE-2026-79993 в предоставленных источниках не указаны.
Ниже приведены общие, неспецифичные точки контроля:
- Внезапное удаление пустых znodes из дерева данных ZooKeeper
- Непривычные TCP-подключения к порту 2181 с нестандартных IP или хостов
- Изменения в структуре дерева данных без соответствующих операций со стороны легитимных клиентов
Как обнаружить атаку
Для обнаружения атаки можно использовать следующие подходы:
- Мониторинг логов ZooKeeper на наличие операций удаления znodes, особенно массовых или нестандартных
- Анализ сетевых потоков для выявления raw-запросов с opcode deleteContainer (20)
- Сравнение текущего состояния дерева данных с ожидаемой конфигурацией или бэкапом
Как проверить свою версию
Для проверки версии пакета zookeeper в Ubuntu используйте следующие команды:
Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Замените
<имя-пакета> на фактическое имя пакета, например zookeeper или libzookeeper2. Команда apt-cache policy zookeeper покажет установленную версию и доступные обновления. Команда ubuntu-security-status перечислит уязвимые пакеты, требующие исправления.Исправление
Исправление доступно в версиях Apache ZooKeeper 3.8.7 и 3.9.6.
Для Ubuntu:
- Обновите пакет
zookeeperдо версии, содержащей исправление:sudo apt update && sudo apt upgrade zookeeper
- Обновите связанные пакеты:
libzookeeper-java,libzookeeper-mt2,libzookeeper-st2,libzookeeper2,python3-zookeeper,zookeeper-bin,zookeeperd
- Проверьте результат с помощью
apt-cache policy zookeeperиubuntu-security-status
Временные меры защиты
Пока обновление не применено, можно снизить риск:
- Ограничьте доступ к порту ZooKeeper (2181) до доверенных IP-адресов через firewall или network policy
- Отключите raw-протокольный доступ к порту 2181 для внешних сетей, если это позволяет архитектура приложения
- Регулярно резервируйте дерево данных ZooKeeper и отслеживайте изменения в znodes
Как проверить устранение уязвимости
После обновления проверьте:
- Версию пакета:
apt-cache policy zookeeper— должна отображаться версия с исправлением (3.8.7 или 3.9.6)
- Статус безопасности:
ubuntu-security-status— CVE-2026-79993 должен быть отмечен как исправленный
- Функциональность ZooKeeper: убедитесь, что дерево данных и зависимости приложений работают корректно
Вывод
CVE-2026-79993 позволяет удалённому клиенту удалять пустые постоянные znodes в Apache ZooKeeper без проверки ACL.
В Ubuntu затронуты сборки от 3.8.0 до 3.8.6 и от 3.9.0 до 3.9.5.
Исправление доступно через обновление пакетов из репозиториев безопасности. Рекомендуется проверить версию zookeeper, применить обновления и ограничить сетевой доступ к порту 2181.
Официальные источники
История обновлений статьи
- 21.09.2026 — Опубликована первая версия материала.
