
KO: Лабораторный проект, воспроизводящий уязвимость, которая обходит плагины авторизации (AuthZ) Docker (Moby) с помощью тела запроса размером более 1 МБ. EN: Лабораторная репродукция уязвимости, обходящей плагины авторизации (AuthZ) Docker (Moby) с помощью слишком большого (>1 МБ) тела запроса.
| Пункт | Значение |
|---|---|
| CVE | CVE-2026-34040 |
| CVSS 3.1 | 8.8 (высокий) — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-288 (Обход аутентификации через альтернативный путь или канал), CWE-863 (Неверная авторизация) |
| Затронуты | moby/moby < 29.3.1, docker/docker < 29.3.1, moby/moby/v2 < 2.0.0-beta.8 |
| Исправлено в | 29.3.1, 2.0.0-beta.8 |
| Корневая причина | Неполное исправление CVE-2024-41110 |
| Коммит исправления | moby/moby@e89edb1 |
KO: Официальный вектор CVSS —
AV:L(локальный). Оцениваемый сценарий — это пользователь с низкими привилегиями и локальным доступом к Docker API (обычно/var/run/docker.sock). Этот PoC использует только локальный UNIX-сокет. EN: Официальный вектор CVSS —AV:L(локальный). Оцениваемый сценарий — пользователь с низкими привилегиями и локальным доступом к Docker API (обычно/var/run/docker.sock). Данный PoC использует только локальный UNIX-сокет.
KO:
- Обычный запрос на создание привилегированного контейнера блокируется AuthZ-плагином (HTTP 403).
- Тот же запрос с padding более 1 МБ обходит проверку AuthZ.
- Обойдённый запрос достигает этапа обработки демоном Docker и создаёт привилегированный контейнер.
- Связка privileged + bind-mount хоста позволяет продемонстрировать чтение файлов хоста и выполнение команд на хосте.
EN:
- Обычный запрос на создание привилегированного контейнера блокируется AuthZ-плагином (HTTP 403).
- Тот же запрос, дополненный padding до размера более 1 МБ, обходит проверку AuthZ.
- Обойдённый запрос доходит до демона Docker и создаёт привилегированный контейнер.
- Связка privileged + bind-mount хоста позволяет продемонстрировать чтение файлов хоста и выполнение команд на хосте.
KO: Сам CVE не читает
/etc/shadowи не выполняет RCE напрямую. Суть уязвимости — обход запроса к Docker API, который AuthZ должна блокировать; последующие шаги (чтение файла, chroot, выполнение команд) — это демонстрация воздействия, использующая штатные функции Docker/Linux. EN: Уязвимость сама по себе не читает/etc/shadowи не выполняет RCE напрямую. Суть уязвимости — обход запроса к Docker API, который должна блокировать AuthZ; последующие шаги (чтение файла, chroot, выполнение команд) — это демонстрация воздействия, использующая обычные функции Docker/Linux.
.
├── README.md
├── poc.py # Working PoC (local UNIX socket only)
├── requirements.txt # Python standard library only
├── LICENSE
├── lab/
│ ├── authz.rego # OPA policy: blocks privileged + host-root bind
│ └── daemon.json # Registers the AuthZ plugin
└── docs/
├── concepts.md # 개념 / Concepts
├── lab-setup.md # 환경 구성 / Lab setup
├── how-it-works.md # 동작 원리 / How it works (source-level)
├── usage.md # 사용법 / Usage
├── troubleshooting.md # 문제 해결 / Troubleshooting
└── references.md # 참고 / References
KO: Для осмысленной работы этого PoC необходимы все перечисленные ниже условия. EN: Для того чтобы PoC работал осмысленно, необходимы все перечисленные ниже условия.
# 1) Pull the image used by the PoC
sudo docker pull alpine
# 2) Run the non-destructive bypass check
sudo python3 poc.py --mode check
Ожидаемый результат на уязвимой системе:
small request -> HTTP 403 (AuthZ blocks)
oversized request -> HTTP 201 or HTTP 404 (AuthZ bypassed; daemon processed it)
KO:
404 No such imageтакже является доказательством обхода — запрос не был заблокирован AuthZ (не 403) и дошёл до этапа поиска образа у демона. Чтобы избежать путаницы в презентации/демо, заранее загрузитеalpine. EN:404 No such image— тоже доказательство обхода: запрос прошёл AuthZ (не 403) и достиг этапа поиска образа у демона. Заранее загрузитеalpine, чтобы избежать путаницы во время демонстрации.
Полное описание использования см. в docs/usage.md.
KO: Используйте только в изолированной лабораторной среде, которой вы владеете или на тестирование которой получили явное разрешение. Не запускайте против удалённых Docker API, сторонних серверов, production-сред или Docker-эндпоинтов, доступных из интернета. Режимы демонстрации воздействия (
rce-proof,host-command,reverse-shell-local) работают только при наличии явного флага подтверждения. EN: Используйте только в изолированной лабораторной среде, которой вы владеете или на тестирование которой получили явное разрешение. Не запускайте против удалённых Docker API, сторонних серверов, производственных сред или Docker-эндпоинтов, доступных из интернета. Режимы демонстрации воздействия (rce-proof,host-command,reverse-shell-local) требуют явного флага подтверждения.
См. docs/references.md.
| Условие | Обязательно | Причина |
|---|
Локальный доступ к Docker API (/var/run/docker.sock) | Да | PoC отправляет запросы в сокет |
| Включён AuthZ-плагин с политикой, проверяющей тело запроса | Да | Цель обхода — проверка AuthZ |
| Docker/Moby < 29.3.1 | Да | Исправленные версии отклоняют слишком большие тела запросов |
Образ alpine присутствует локально | Рекомендуется | Иначе create возвращает 404 No such image |