
Proof-of-Concept-Exploit für CVE-2025-9074 – Unauthentifizierte Docker-API-Exposition, die die Erstellung beliebiger Container und den Zugriff auf das Host-Dateisystem ermöglicht.
Dieses Repository stellt einen Proof-of-Concept-Exploit (PoC) für CVE-2025-9074 bereit, der die nicht authentifizierte Offenlegung der Docker-Engine-API auf TCP-Port 2375 betrifft.
Ein Angreifer, der auf diese exponierte API zugreifen kann, kann:
Dieser PoC wird nur für Bildungs- und autorisierte Sicherheitstestzwecke veröffentlicht.
Die unbefugte Ausnutzung von Systemen ist illegal und unethisch.
Verwenden Sie diesen PoC nur in Umgebungen, die Sie besitzen oder für die Sie ausdrückliche Genehmigung zum Testen haben.
2375requests-BibliothekAbhängigkeiten installieren:
pip install requests
Wenn Sie diesen PoC auf Ihrem lokalen Rechner testen, stellen Sie sicher, dass die Docker-API über TCP ohne TLS exponiert ist. Gehen Sie in Docker Desktop wie folgt vor:
⚠️ Warnung: Diese Option deaktiviert die Authentifizierung an der Docker-API.
Jeder lokale oder entfernte Angreifer, der localhost:2375 erreichen kann, kann Ihren Docker-Daemon kontrollieren.
Aktivieren Sie dies nur in isolierten Testumgebungen — niemals in der Produktion.
Sobald sie aktiviert ist, können Sie dies überprüfen mit:
curl http://127.0.0.1:2375/info
Wenn die API mit JSON antwortet, das "ServerVersion" enthält, ist der Daemon korrekt exponiert.
# 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
Wenn kein Ziel angegeben wird, fragt das Skript nach einer Eingabe und verwendet standardmäßig 127.0.0.1:2375.
API-Verfügbarkeit prüfen
Bestätigt, ob die Docker-API auf /info antwortet.
alpine-Image pullen
Stellt sicher, dass das erforderliche Basis-Image verfügbar ist.
Bösartige Container-Nutzlast vorbereiten
Erstellt einen Container, bei dem das Host-Dateisystem unter /mnt als Bind-Mount eingebunden ist.
Container erstellen Sendet eine Anfrage zur Container-Erstellung.
Container starten Der Container wird gestartet und ermöglicht den Zugriff auf das Host-Dateisystem.
Post-Exploitation Beispiel:
docker exec -it <container_id> sh
ls /mnt
Expose daemon on tcp://localhost:2375 without TLS in Docker Desktop nach dem Test.Das PoC-Skript wurde während der Forschung gemeinsam mit Gemini AI entwickelt.
Dieser PoC wird unter der MIT-Lizenz veröffentlicht.