CVE-2025-60673CVE-2025-60673是D-Link DIR-878A1路由器固件中的一个严重安全漏洞,属于未认证命令注入类型。该漏洞存在于路由器的SetDMZSettings功能中,攻击者可以通过精心构造的HTTP请求注入恶意命令。漏洞的根本原因在于程序对用户输入的IPAddress参数缺乏充分的输入验证,该参数被直接存储到NVRAM中,随后被librcm.so库用于动态构造iptables防火墙命令。由于构造的命令通过twsystem()函数执行,且整个过程无需任何认证,攻击者可以直接从网络远程利用此漏洞获取设备的完全控制权。此漏洞的CVSS评分为6.5,属于中等严重程度,但考虑到攻击复杂度低且无需认证,其实际威胁程度不容忽视。攻击者成功利用此漏洞可以在路由器上执行任意系统命令,可能导致敏感信息泄露、路由器功能瘫痪或将其作为进一步攻击内网的跳板。
该命令注入漏洞的技术原理涉及多个组件的协同作用。首先,漏洞入口点位于prog.cgi的SetDMZSettings处理函数,该函数接收HTTP请求中的IPAddress参数。在正常的固件流程中,这个IP地址应该被验证为有效的IP地址格式,然后存储到NVRAM中供后续使用。然而,程序缺少对IPAddress参数的严格输入验证机制,允许攻击者注入任意命令分隔符和系统命令。存储在NVRAM中的恶意数据随后被librcm.so库读取,该库负责构建iptables规则以配置DMZ(隔离区)功能。问题在于librcm.so在构造iptables命令时,直接将NVRAM中的IPAddress值拼接到命令行中,而没有进行任何转义或安全检查。最终,包含恶意代码的命令字符串被传递给twsystem()函数执行,该函数会直接调用系统shell来解释执行命令。由于twsystem()使用/bin/sh执行命令,攻击者可以利用分号、管道、反引号等shell元字符来实现命令注入。攻击者只需要发送一个带有恶意IPAddress参数的HTTP POST请求即可触发漏洞,无需任何认证凭证。