
Exploit Proof-of-Concept per CVE-2025-9074 - Esposizione dell'API Docker non autenticata che consente la creazione arbitraria di container e l'accesso al filesystem dell'host.
Questo repository fornisce un exploit Proof-of-Concept (PoC) per CVE-2025-9074, che riguarda l'esposizione non autenticata dell'API Docker Engine sulla porta TCP 2375.
Un attaccante che può accedere a questa API esposta può:
Questo PoC è rilasciato solo per scopi educativi e di test di sicurezza autorizzati.
Lo sfruttamento non autorizzato dei sistemi è illegale e non etico.
Usa questo PoC solo su ambienti di cui sei proprietario o su cui hai esplicita autorizzazione a testare.
2375requestsInstalla le dipendenze:
pip install requests
Se stai testando questo PoC sulla tua macchina locale, assicurati che l'API Docker sia esposta su TCP senza TLS. Su Docker Desktop, segui questi passaggi:
⚠️ Avvertenza: Questa opzione disabilita l'autenticazione sull'API Docker.
Qualsiasi attaccante locale o remoto che possa raggiungere localhost:2375 può controllare il tuo daemon Docker.
Abilitala solo in ambienti di test isolati — mai in produzione.
Una volta abilitata, puoi verificare con:
curl http://127.0.0.1:2375/info
Se l'API risponde con JSON contenente "ServerVersion", il daemon è esposto correttamente.
# 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
Se non viene fornito alcun target, lo script chiederà un input e utilizzerà come predefinito 127.0.0.1:2375.
Verifica la disponibilità dell'API
Conferma se l'API Docker risponde a /info.
Scarica l'immagine alpine
Garantisce che l'immagine base richiesta sia disponibile.
Prepara il payload del container dannoso
Crea un container con il filesystem dell'host montato tramite bind mount su /mnt.
Crea il container Invia una richiesta di creazione del container.
Avvia il container Il container viene avviato, fornendo accesso al filesystem dell'host.
Post-sfruttamento Esempio:
docker exec -it <container_id> sh
ls /mnt
Esponi il daemon su tcp://localhost:2375 senza TLS in Docker Desktop dopo il test.Script PoC co-sviluppato con Gemini AI durante la ricerca.
Questo PoC è rilasciato sotto la Licenza MIT.