CVE-2025-54400CVE-2025-54400是存在于Planet WGR-500 v1.3411b190912路由器固件中的多个栈缓冲区溢出漏洞。该漏洞位于设备的formPingCmd功能模块中,攻击者通过精心构造的一系列HTTP请求即可触发栈缓冲区溢出,从而实现远程代码执行。
Planet WGR-500是一款无线路由器产品,其管理界面提供了网络诊断工具(如ping功能)供用户使用。formPingCmd功能负责处理ping命令的请求参数,将用户提交的参数拼接为系统命令并执行。然而,该功能在处理`counts`请求参数时,未对输入长度进行充分验证或边界检查,导致在拼接`"ping -c <counts> <ipaddr> 2>&1 > %s &"`命令字符串时发生栈缓冲区溢出。
该漏洞的CVSS 3.1评分为8.8分,属于高危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),仅需低权限认证(PR:L),无需用户交互(UI:N),一旦利用成功将对机密性、完整性和可用性均产生高影响(C:H/I:H/A:H)。这意味着经过认证的远程攻击者可以完全控制受影响的路由器设备,可能导致网络流量劫持、敏感信息泄露、设备被植入后门等严重后果。
该漏洞由思科Talos情报团队发现并报告,参考编号为TALOS-2025-2226。作为网络边界设备,路由器的此类高危漏洞对企业和家庭网络安全构成重大威胁。
该漏洞的根源在于Planet WGR-500路由器固件中formPingCmd功能模块对用户输入参数的处理不当。具体技术细节如下:
**漏洞原理:**
formPingCmd功能用于处理路由器的ping诊断命令请求。在处理HTTP请求时,程序从请求中提取`counts`参数,并将其直接拼接到命令行字符串中,形成形如`"ping -c <counts> <ipaddr> 2>&1 > %s &"`的系统命令。
由于程序在拼接字符串时未对`counts`参数的长度进行边界检查,攻击者可以提交超长的`counts`参数值。当该参数被复制到栈上的固定大小缓冲区时,会发生栈缓冲区溢出,覆盖栈上的返回地址、帧指针或其他关键数据。
**利用方式:**
1. 攻击者首先需要获取路由器的合法认证凭据(低权限即可)
2. 向路由器的formPingCmd接口发送精心构造的HTTP请求
3. 在请求中包含超长值的`counts`参数
4. 当路由器处理该请求并尝试拼接ping命令字符串时,触发栈缓冲区溢出
5. 攻击者可通过控制溢出数据来覆盖返回地址,实现任意代码执行
**影响分析:**
- 攻击者可获得路由器的shell权限
- 可修改路由器配置,劫持网络流量
- 可植入持久化后门
- 可利用路由器作为内网渗透的跳板
- 可能导致整个局域网面临安全风险