
Exploit de prova de conceito para CVE-2025-9074 - Exposição não autenticada da API Docker permitindo criação arbitrária de contêineres e acesso ao sistema de arquivos do host.
Este repositório fornece um exploit de Prova de Conceito (PoC) para CVE-2025-9074, que envolve a exposição não autenticada da API do Docker Engine na porta TCP 2375.
Um atacante que consiga acessar essa API exposta pode:
Este PoC é disponibilizado apenas para fins educacionais e de testes de segurança autorizados.
A exploração não autorizada de sistemas é ilegal e antiética.
Use este PoC somente em ambientes que você possui ou para os quais tem permissão explícita de teste.
2375requestsInstalar dependências:
pip install requests
Se você estiver testando este PoC em sua máquina local, certifique-se de que a API do Docker esteja exposta via TCP sem TLS. No Docker Desktop, siga estes passos:
⚠️ Aviso: Esta opção desativa a autenticação na API do Docker.
Qualquer atacante local ou remoto que consiga alcançar localhost:2375 pode controlar seu daemon do Docker.
Ative isso apenas em ambientes de teste isolados — nunca em produção.
Depois de ativado, você pode verificar com:
curl http://127.0.0.1:2375/info
Se a API responder com JSON contendo "ServerVersion", então o daemon está exposto corretamente.
# Clone este repositório
git clone https://github.com/<your-username>/CVE-2025-9074-POC.git
cd CVE-2025-9074-POC
# Execute o PoC
python3 poc_cve_2025_9074.py <target_ip>:2375
Se nenhum alvo for fornecido, o script solicitará a entrada e usará 127.0.0.1:2375 como padrão.
Verificar disponibilidade da API
Confirma se a API do Docker responde a /info.
Baixar a imagem alpine
Garante que a imagem base necessária esteja disponível.
Preparar o payload do contêiner malicioso
Cria um contêiner com o sistema de arquivos do host montado via bind em /mnt.
Criar o contêiner Envia uma solicitação de criação de contêiner.
Iniciar o contêiner O contêiner é iniciado, fornecendo acesso ao sistema de arquivos do host.
Pós-exploração Exemplo:
docker exec -it <container_id> sh
ls /mnt
Expor o daemon em tcp://localhost:2375 sem TLS no Docker Desktop após os testes.Script PoC desenvolvido em coautoria com o Gemini AI durante a pesquisa.
Este PoC é distribuído sob a Licença MIT.