
Preuve de concept d'exploit pour CVE-2025-9074 démontrant l'écriture de fichiers du conteneur vers l'hôte via l'API Docker Engine exposée sur Windows. Réservé aux tests autorisés et à des fins éducatives uniquement.
Auteur : w01f
Statut : Preuve de Concept (éducation / tests autorisés uniquement)
Ce projet démontre une PoC pour CVE-2025-9074, une mauvaise configuration/exposition dans certaines versions de Docker Desktop pour Windows où l'API HTTP du moteur Docker à http://192.168.65.7:2375 est accessible depuis les conteneurs (et parfois via SSRF), permettant à un attaquant de créer un conteneur avec un montage bind vers le lecteur hôte Windows et d'écrire des fichiers sur l'hôte.
⚠️ Utilisation uniquement dans un laboratoire contrôlé ou avec une autorisation écrite explicite. Une mauvaise utilisation peut enfreindre les lois et les politiques.
http://192.168.65.7:2375)C:\ de l'hôte (comme /mnt/host/c à l'intérieur de la VM Linux) vers /host_root à l'intérieur du conteneurC:\pwn.txt sur l'hôteSi la cible est vulnérable, vous verrez le fichier apparaître sur l'hôte Windows.
192.168.65.7:2375 (HTTP, sans TLS).✅ Si
GET http://192.168.65.7:2375/_pingrenvoieOKdepuis l'intérieur d'un conteneur, les conditions de la PoC existent probablement.
.
├─ cve_2025_9074_poc.py # PoC Python (basée sur requests)
└─ README.md # Ce fichier
pip install requestshttp://192.168.65.7:2375) depuis le conteneur où vous exécutez la PoC# 1) Installer la dépendance
pip install --no-input requests
# 2) Exécuter la PoC
python3 cve_2025_9074_poc.py
# Optionnel : personnaliser le nom du fichier de sortie ou l'image
# python3 cve_2025_9074_poc.py --outfile test.txt --image busybox
Comportement par défaut :
http://192.168.65.7:2375/mnt/host/c (Windows C:\ vu depuis la VM Linux)/host_rootC:\pwn.txt--host Adresse IP du moteur (par défaut : 192.168.65.7)
--port Port du moteur (par défaut : 2375)
--image Image du conteneur (par défaut : alpine)
--host-path Chemin sur l'hôte/VM du moteur à lier (par défaut : /mnt/host/c)
--mount-path Chemin à l'intérieur du conteneur (par défaut : /host_root)
--outfile Nom du fichier à créer sur C:\ de l'hôte (par défaut : pwn.txt)
Sur un système vulnérable, après avoir exécuté la PoC, vous devriez trouver :
C:\pwn.txt
contenant le texte pwned_by_CVE_2025_9074.
La PoC utilise un conteneur éphémère. Pour être complet :
# Depuis un shell privilégié avec accès à l'interface Docker CLI :
docker ps -a --format '{{.ID}}\t{{.Image}}\t{{.Command}}'
# Supprimer par ID de conteneur s'il en reste :
docker rm -f <ID_DU_CONTENEUR>
# Supprimer le fichier de test sur l'hôte :
del C:\pwn.txt
HostConfig.Binds inclut des chemins comme /mnt/host/c ou d'autres montages de lecteurs hôtes.C:\ provenant de processus attribuables au contexte de la VM Linux Docker.192.168.65.7:2375 (HTTP) est suspecte./ping pas OK / connexion refusée : L'API du moteur n'est pas accessible depuis votre conteneur ; l'hôte peut être corrigé ou non exposé.--host-path correspond correctement au C:\ de Windows depuis la VM Linux. Certains environnements diffèrent.alpine ou passez à busybox avec --image busybox.Cette PoC est fournie à des fins éducatives et de test autorisé uniquement. L'exécuter contre des systèmes sans autorisation écrite explicite est illégal et contraire à l'éthique. L'auteur et les contributeurs ne sont pas responsables d'une utilisation abusive ou des dommages.
MIT
Auteur : w01f