CVE-2026-79993 в Ubuntu: bypass ACL в ZooKeeper и обновление пакетов

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.

Официальные источники​


  1. NVD — CVE-2026-79993
  2. Ubuntu OSV — CVE-2026-79993
  3. FIRST EPSS — CVE-2026-79993

История обновлений статьи​


  • 21.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ