安全研究员 Yassine Damiri 发现了Yi IOT XY-3820 智能摄像头存在两个严重漏洞,这些漏洞构成了重大的安全风险。这两个漏洞的通用漏洞评分系统(CVSS)评分为 9.8,使得未经身份验证的攻击者能够在只需极少交互且无需身份验证的情况下,获得对该设备的完全 root 权限控制。
CVE-2025-29659:远程命令执行
第一个漏洞被追踪编号为 CVE-2025-29659,是一个严重的远程命令执行(RCE)漏洞。它影响的是摄像头固件(版本 v6.0.24.10)中的二进制文件。
虽然该二进制文件在摄像头的正常运行过程中不会被使用,但它可以被触发,从而在 TCP 端口 999 上启动一个 root 级别的命令服务器。一旦该服务器启动,它会 “无限期监听并处理通过网络发送的命令”,进而导致 “未经身份验证的 root 级代码执行”。
技术分析显示,这个二进制文件很小,大约 4.3KB,并且不是摄像头默认启动序列的一部分。然而,一旦启动,它就会打开 TCP 端口 999 并等待接收命令。
要利用这个漏洞,攻击者需要:
1.确保该二进制文件正在运行。
2.连接到设备的 999/tcp 端口。
3.发送所需的 shell 命令,后面跟着标记字符串.$$boundary\r\n。
例如,发送 “id> /tmp/PWNED$$boundary\r\n” 会将 “id” 命令的输出写入摄像头的 /tmp/PWNED 文件中。
CVE-2025-29660:未授权命令执行
第二个漏洞 CVE-2025-29660,同样也构成了严重威胁。这个漏洞存在于摄像头的嵌入式守护进程中,该守护进程运行在 TCP 端口 6789 上。
守护进程是一个核心组件,负责处理主应用程序与 Web 界面之间的通信,同时还传输视频流并处理控制命令。
该漏洞源于守护进程未能正确清理用户提供的输入。这使得远程的、未经身份验证的攻击者能够使用路径遍历技术在文件系统上执行任意命令。
具体来说,“daemon_parse_exec” 函数会处理发送到端口 6789 的每个 TCP 请求。虽然该函数期望接收到一个指向脚本的有效路径,但它不会过滤像 “../” 这样的相对路径。由于缺乏这种过滤,攻击者可以利用目录遍历技术来操纵最终的脚本执行路径,并且该路径会以 root 权限执行。
要利用这个漏洞,攻击者可以通过原始 TCP 连接向端口 6789 发送以下有效载荷:“12 12 ../../../usr/bin/cmd”。
这个有效载荷会指示守护进程执行 “/usr/bin/cmd” 二进制文件。如果成功利用该漏洞,设备将打开端口 999,这表明相关进程已被启动。
强烈建议用户采取以下措施:
1.将摄像头固件更新到最新版本。
2.将受影响的摄像头与互联网断开连接。
3.限制其仅访问内部网络。
4.监控异常的出站连接,尤其是在端口 6789 和 999 上的连接。