
Эксплойт Proof-of-Concept для CVE-2025-9074 — неаутентифицированный доступ к Docker API, позволяющий создавать произвольные контейнеры и получать доступ к файловой системе хоста.
Этот репозиторий содержит эксплойт Proof-of-Concept (PoC) для CVE-2025-9074, связанный с неавторизованным доступом к API Docker Engine через TCP-порт 2375.
Злоумышленник, имеющий доступ к этому открытому API, может:
Данный PoC опубликован исключительно в образовательных целях и для авторизованного тестирования безопасности.
Несанкционированная эксплуатация систем незаконна и неэтична.
Используйте этот PoC только в средах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.
2375requestsУстановка зависимостей:
pip install requests
Если вы тестируете этот PoC на локальной машине, убедитесь, что API Docker доступен по TCP без TLS. В Docker Desktop выполните следующие шаги:
⚠️ Предупреждение: этот параметр отключает аутентификацию в Docker API.
Любой локальный или удалённый злоумышленник, имеющий доступ к localhost:2375, может управлять вашим демоном Docker.
Включайте его только в изолированных тестовых средах — никогда в продакшене.
После включения вы можете проверить это с помощью:
curl http://127.0.0.1:2375/info
Если API отвечает JSON-объектом, содержащим "ServerVersion", значит, демон доступен корректно.
# Clone this repository
git clone https://github.com/<your-username>/CVE-2025-9074-POC.git
cd CVE-2025-9074-POC
# Run the PoC
python3 poc_cve_2025_9074.py <target_ip>:2375
Если цель не указана, скрипт запросит ввод и по умолчанию будет использовать 127.0.0.1:2375.
Проверка доступности API
Проверяет, отвечает ли Docker API на запрос /info.
Загрузка образа alpine
Убеждается, что требуемый базовый образ доступен.
Подготовка полезной нагрузки вредоносного контейнера
Создаёт контейнер с файловой системой хоста, смонтированной через bind-mount в /mnt.
Создание контейнера Отправляет запрос на создание контейнера.
Запуск контейнера Контейнер запускается, предоставляя доступ к файловой системе хоста.
Пост-эксплуатация Пример:
docker exec -it <container_id> sh
ls /mnt
Expose daemon on tcp://localhost:2375 without TLS в Docker Desktop после тестирования.Скрипт PoC разработан в соавторстве с Gemini AI в ходе исследования.
Этот PoC опубликован под лицензией MIT.