
Proof-of-concept-Exploit für CVE-2025-9074, der Container-zu-Host-Dateischreiben über exponierte Docker-Engine-API unter Windows demonstriert. Nur für autorisierte Tests und Bildung.
Autor: w01f
Status: Proof-of-Concept (nur für Bildungszwecke / autorisierte Tests)
Dieses Projekt demonstriert einen PoC für CVE-2025-9074, eine Fehlkonfiguration/Exposition in bestimmten Versionen von Docker Desktop for Windows, bei der die HTTP-API der Docker Engine unter http://192.168.65.7:2375 aus Containern erreichbar ist (und manchmal über SSRF), sodass ein Angreifer einen Container mit einem Bind-Mount auf das Windows-Hostlaufwerk erstellen und Dateien auf den Host schreiben kann.
⚠️ Nur in einer kontrollierten Laborumgebung oder mit ausdrücklicher schriftlicher Genehmigung verwenden. Missbrauch kann Gesetze und Richtlinien verletzen.
http://192.168.65.7:2375)C:\ (als /mnt/host/c innerhalb der Linux-VM) nach /host_root im ContainerC:\pwn.txt auf dem Host zu erstellenWenn das Ziel verwundbar ist, erscheint die Datei auf dem Windows-Host.
192.168.65.7:2375 (HTTP, ohne TLS) exponiert ist.✅ Wenn
GET http://192.168.65.7:2375/_pingvon innerhalb eines ContainersOKzurückgibt, sind die PoC-Bedingungen wahrscheinlich erfüllt.
.
├─ cve_2025_9074_poc.py # Python PoC (requests-based)
└─ README.md # This file
pip install requestshttp://192.168.65.7:2375) aus dem Container zu erreichen, in dem du den PoC ausführst.# 1) Install dependency
pip install --no-input requests
# 2) Run the PoC
python3 cve_2025_9074_poc.py
# Optional: customize output filename or image
# python3 cve_2025_9074_poc.py --outfile test.txt --image busybox
Standardverhalten:
http://192.168.65.7:2375/mnt/host/c (Windows C:\ aus Sicht der Linux-VM)/host_rootC:\pwn.txt--host Engine host IP (default: 192.168.65.7)
--port Engine port (default: 2375)
--image Container image (default: alpine)
--host-path Path on engine host/VM to bind (default: /mnt/host/c)
--mount-path Path inside the container (default: /host_root)
--outfile Filename to create on host C:\ (default: pwn.txt)
Auf einem verwundbaren System solltest du nach dem Ausführen des PoC Folgendes finden:
C:\pwn.txt
das den Text pwned_by_CVE_2025_9074 enthält.
Der PoC verwendet einen kurzlebigen Container. Wenn du gründlich sein möchtest:
# From a privileged shell with docker CLI access:
docker ps -a --format '{{.ID}}\t{{.Image}}\t{{.Command}}'
# Remove by container ID if any remain:
docker rm -f <CONTAINER_ID>
# Remove the test file on the host:
del C:\pwn.txt
HostConfig.Binds Pfade wie /mnt/host/c oder andere Host-Laufwerks-Mounts enthält.C:\ überwachen, die auf Prozesse aus dem Docker-Linux-VM-Kontext zurückzuführen sind.192.168.65.7:2375 (HTTP) ist verdächtig./ping nicht OK / Verbindung abgelehnt: Die Engine-API ist aus deinem Container nicht erreichbar; der Host ist möglicherweise gepatcht oder nicht exponiert.--host-path korrekt auf das Windows-C:\ aus der Linux-VM abbildet. Manche Umgebungen weichen ab.alpine vorab pullen oder mit --image busybox auf busybox wechseln.Dieser PoC wird nur für Bildungszwecke und autorisierte Tests bereitgestellt. Der Einsatz gegen Systeme ohne ausdrückliche schriftliche Genehmigung ist illegal und unethisch. Der Autor und die Mitwirkenden sind nicht verantwortlich für Missbrauch oder Schäden.
MIT
Autor: w01f