Apache закрыла несколько уязвимостей в ZooKeeper. Это служба координации: она хранит настройки кластера и сведения о лидере. Ошибки позволяют обойти политику безопасности и вызвать отказ в обслуживании по сети. Хотя часть из них срабатывает без учётных данных, исправления уже вышли.
Обход прав через SASL и отказ в обслуживании
Внимание к выпуску связано с настройками по умолчанию. В типовой установке корневой список прав открыт, а служебное поддерево квот доступно на запись без входа в систему. Так задумано изначально. Поэтому защита держится на ручной настройке, а не на самом продукте. Сведений об эксплуатации в реальных атаках нет.
При этом под уязвимость попадают релизы 3.8.0-3.8.7 и 3.9.0-3.9.6. Записи опубликованы 04 ноября 2026 года и обновлены в тот же день. Резерв идентификаторов делали в сентябре и октябре. Нашли ошибки cunyi li, Prasath Jayasundar, команда PayPal Cyber Security Team, а также специалисты Innspark Solutions.
Первой стоит назвать CVE-2026-100252: обход авторизации SASL на клиентском порту. SASL - это слой аутентификации, в котором клиент сам называет имя. Сервер принимает такую метку, хотя пройденный вход говорит о другом. Ошибку видит только журнал.
Правила auth_to_local переводят имя принципала в локальное, а при промахе метка остаётся. В результате клиент работает с правами чужой учётной записи. Права суперпользователя дают всё дерево данных. С правилами по умолчанию так можно назваться учётной записью из чужого Kerberos-реалма. Оценка CVSS 4.0 - 8.6: сеть, низкая сложность, низкие привилегии, пользователь не нужен.
Отзыв прав не мешает уже подготовленному запросу
Похожий обход даёт CVE-2026-100235 в обработке команды setACL. Новые права не попадают в общий список ожидающих изменений для узла. Поэтому подготовленный запрос проверяется по старому списку, а применяется уже после смены прав. Клиенту достаточно окна, чтобы дописать данные или вернуть себе полные права. При переходе от открытого ACL к строгому это доступно без входа в систему.
Сервер не возвращается в строй после перезапуска
Отказ в обслуживании начинается с записи в служебное поддерево квот. В CVE-2026-100300 сервер не проверяет данные и пути из этой записи. Поток обработки запросов падает, а каталог данных остаётся нечитаемым. Перезапуск не помогает, поэтому нужно ручное вмешательство. При этом оценка CISA ADP допускает автоматизацию такой атаки.
Иначе устроена CVE-2026-115448: она действует через снимок состояния. Клиент, которому разрешено создавать узлы, строит длинную цепочку вложенных узлов. Снимок пишется рекурсией без ограничения глубины, и стек потока заканчивается. После перезапуска сборка повторяется и снова падает, поэтому кластер не возвращается в строй. Журнал общий для лидера и ведомых узлов, и сбой расходится по всей группе.
CVE-2026-100302 обходится одним небольшим запросом multiRead. Обработчик не ограничивает число вложенных чтений и суммарный размер ответа. Каждый результат собирается в памяти целиком, поэтому куча Java заканчивается. Сервер падает с ошибкой нехватки памяти, и лимиты на размер запроса тут не спасают. Ошибка затрагивает ветки с 3.7.0 по 3.9.6.
Оценки CISA ADP есть не для каждой записи. Автоматизацию атаки отмечают у ошибок квот и снимка. Для обхода SASL техническое влияние указано как полное. Для multiRead влияние частичное. Эксплуатацию в реальных атаках при этом не фиксировали нигде.
Исправления и обходные меры
Записи CVE советуют перейти на версии 3.8.8 или 3.9.7. Для multiRead исправление вводит настраиваемые лимиты. Они ограничивают число операций и суммарный размер ответа. Бюллетень безопасности Apache Zookeeper security от 04 ноября 2026 отправляет за патчами к документации вендора. Обходных мер почти нет, поэтому до установки патча стоит закрыть запись в служебное поддерево квот и ограничить создание узлов списками прав.