Docker-хосты под угрозой: CVE-2026-34040 обходит любой плагин авторизации одним запросом

Уязвимость CVE-2026-34040 (CVSS 8.8) позволяет обойти любой AuthZ-плагин Docker Engine одним HTTP-запросом. ИИ-агенты могут эксплуатировать её автоматически.

Обложка: Docker-хосты под угрозой: CVE-2026-34040 обходит любой плагин авторизации одним запросом

Если вы ограничиваете доступ к Docker API через плагины авторизации (AuthZ — компоненты, проверяющие каждый API-запрос) — обновитесь до версии 29.3.1 прямо сейчас. Новая уязвимость CVE-2026-34040 позволяет обойти любой AuthZ-плагин одним HTTP-запросом и получить полный доступ к хост-машине.

Уязвимость получила оценку критичности CVSS 8,8 из 10 и оказалась следствием неполного исправления CVE-2024-41110 — критической проблемы в том же компоненте, обнаруженной в июле 2024 года. Баг независимо нашли несколько исследователей, включая Владимира Токарева из Cyera Research Labs.

Ключевые выводы
  • CVE-2026-34040 (CVSS 8.8) — обход AuthZ-плагинов Docker Engine через раздутый HTTP-запрос (более 1 МБ)
  • Атакующий получает привилегированный контейнер с root-доступом к файловой системе хоста: AWS-ключи, SSH, Kubernetes-конфиги
  • Работает против всех AuthZ-плагинов в экосистеме — независимо от реализации
  • ИИ-агенты (например, OpenClaw) могут эксплуатировать уязвимость автоматически, без специального вредоносного кода
  • Патч: Docker Engine 29.3.1. Временные меры: rootless mode, ограничение доступа к Docker API

Как работает атака

Механизм уязвимости элегантно прост. Когда Docker Engine получает API-запрос, он пересылает его плагину авторизации (AuthZ) для проверки. Плагин анализирует тело запроса и решает — разрешить или заблокировать.

Проблема в том, что исправление CVE-2024-41110 не учло ситуацию с чрезмерно большими HTTP-запросами. Если тело запроса превышает 1 МБ, Docker Engine отбрасывает его перед отправкой плагину.

Результат: AuthZ-плагин видит пустой запрос, блокировать нечего — и пропускает его. А Docker Engine обрабатывает полный запрос целиком.

Плагин разрешает запрос, потому что не видит ничего подозрительного. Docker Engine обрабатывает полный запрос и создаёт привилегированный контейнер с root-доступом к хосту: ваши AWS-ключи, SSH-ключи, конфиги Kubernetes — всё на машине. Это работает против каждого AuthZ-плагина в экосистеме.
Владимир ТокаревИсследователь, Cyera Research Labs

ИИ-агенты как вектор атаки

Исследователи из Cyera показали ещё более тревожный сценарий. ИИ-кодинг-агент вроде OpenClaw (open-source ИИ-ассистент, работающий в Docker-песочнице), может эксплуатировать CVE-2026-34040 автоматически.

Сценарий атаки через prompt injection (внедрение скрытых инструкций в данные, которые обрабатывает ИИ): злоумышленник прячет вредоносные команды в коде GitHub-репозитория. Разработчик просит агента проанализировать этот репозиторий. Агент выполняет скрытые инструкции, конструирует раздутый HTTP-запрос, обходит AuthZ и монтирует файловую систему хоста.

Но самое важное — агенту даже не нужен заражённый репозиторий. Если разработчик даёт агенту задачу вроде «отладь проблему с out-of-memory в Kubernetes», агент может самостоятельно попытаться получить доступ к kubeconfig. Получив отказ от AuthZ-плагина, он способен сконструировать обход — потому что CVE-2026-34040 не требует специального эксплойт-кода.

CVE-2026-34040 не требует эксплойт-кода, привилегий или специальных инструментов. Это один HTTP-запрос с дополнительным padding. Любой агент, который может прочитать документацию Docker API, способен его сконструировать.
Владимир ТокаревИсследователь, Cyera Research Labs

Что делать

Основное исправление: обновить Docker Engine до версии 29.3.1.

			docker version --format '{{.Server.Version}}'
		
			# Debian/Ubuntu
sudo apt update && sudo apt install docker-ce docker-ce-cli

# RHEL/CentOS/Fedora
sudo dnf update docker-ce
		

Если немедленное обновление невозможно, примените временные меры:

  1. Ограничьте доступ к Docker API — по принципу наименьших привилегий. Только доверенные пользователи и процессы
  2. Переключитесь на rootless mode — даже привилегированный контейнер получит непривилегированный UID хоста. Вектор атаки сужается с «полный захват хоста» до «компрометация непривилегированного пользователя»
  3. Используйте --userns-remap — если полный rootless mode невозможен, UID-маппинг даёт аналогичную изоляцию
  4. Не полагайтесь на AuthZ-плагины, которые анализируют тело запроса для принятия решений о доступе
Часто задаваемые вопросы
1
Какие версии Docker уязвимы?

Уязвимы все версии Docker Engine до 29.3.1, использующие плагины авторизации (AuthZ). Если вы не используете AuthZ-плагины, уязвимость вас не затрагивает — но обновиться всё равно стоит.

2
Как проверить, уязвим ли мой Docker?

Выполните docker version и проверьте версию Server. Если ниже 29.3.1 и вы используете AuthZ-плагины — вы уязвимы. Проверить наличие плагинов: docker plugin ls.

3
Может ли ИИ-агент случайно эксплуатировать эту уязвимость?

Да, исследователи из Cyera Research Labs показали, что ИИ-кодинг-агент может самостоятельно сконструировать обход AuthZ-плагина при попытке получить доступ к файлам хоста — без какого-либо вредоносного промпта. Достаточно стандартной задачи на отладку.

4
Rootless mode полностью защищает?

Rootless mode значительно сужает поверхность атаки: даже привилегированный контейнер получит непривилегированный UID на хосте. Это не абсолютная защита, но снижает последствия компрометации с «полный захват хоста» до «один пользователь».

Выводы

CVE-2026-34040 — наглядный пример того, как неполный патч создаёт новую уязвимость. Первоначальная проблема (CVE-2024-41110, CVSS 10.0) была исправлена в июле 2024, но пограничный случай с большими запросами остался непокрытым.

Особенно тревожит вектор через ИИ-агентов: уязвимость настолько проста, что агент может открыть её самостоятельно, просто пытаясь выполнить легитимную задачу. Это ставит под вопрос модель безопасности Docker-песочниц для ИИ-кодинг-инструментов.

Обновитесь до Docker Engine 29.3.1 и пересмотрите, кто и что имеет доступ к вашему Docker API.