
Exploit de preuve de concept pour CVE-2025-9074 - Exposition non authentifiée de l'API Docker permettant la création arbitraire de conteneurs et l'accès au système de fichiers de l'hôte.
Ce dépôt fournit une preuve de concept (PoC) pour exploiter CVE-2025-9074, qui implique une exposition non authentifiée de l'API Docker Engine sur le port TCP 2375.
Un attaquant qui peut accéder à cette API exposée peut :
Ce PoC est publié uniquement à des fins éducatives et de tests de sécurité autorisés.
L'exploitation non autorisée de systèmes est illégale et contraire à l'éthique.
N'utilisez ce PoC que sur des environnements que vous possédez ou pour lesquels vous avez l'autorisation explicite de tester.
2375requestsInstaller les dépendances :
pip install requests
Si vous testez ce PoC sur votre machine locale, assurez-vous que l'API Docker est exposée sur TCP sans TLS. Avec Docker Desktop, procédez comme suit :
⚠️ Avertissement : Cette option désactive l'authentification sur l'API Docker.
Tout attaquant local ou distant capable d'atteindre localhost:2375 peut contrôler votre démon Docker.
N'activez cette option que dans des environnements de test isolés — jamais en production.
Une fois activée, vous pouvez vérifier avec :
curl http://127.0.0.1:2375/info
Si l'API répond avec un JSON contenant "ServerVersion", alors le démon est correctement exposé.
# 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
Si aucune cible n'est fournie, le script demandera une saisie et utilisera 127.0.0.1:2375 par défaut.
Vérifier la disponibilité de l'API
Vérifie que l'API Docker répond à /info.
Télécharger l'image alpine
Garantit que l'image de base requise est disponible.
Préparer la charge utile du conteneur malveillant
Crée un conteneur avec le système de fichiers hôte monté via bind sur /mnt.
Créer le conteneur Envoie une requête de création de conteneur.
Démarrer le conteneur Le conteneur est démarré, donnant accès au système de fichiers hôte.
Post-exploitation Exemple :
docker exec -it <container_id> sh
ls /mnt
Expose daemon on tcp://localhost:2375 without TLS dans Docker Desktop après les tests.Script PoC co-développé avec Gemini AI au cours des recherches.
Ce PoC est publié sous la licence MIT.