TALOS-2025-2226 Planet WGR-500 formPingCmd堆栈缓冲区溢出漏洞
CVE编号
CVE-2025-54401, CVE-2025-54400, CVE-2025-54399, CVE-2025-54402
概述
Planet WGR-500 v1.3411b190912的formPingCmd功能中存在多个堆栈缓冲区溢出漏洞。通过特制的一系列HTTP请求可导致堆栈缓冲区溢出。攻击者可发送一系列HTTP请求来触发这些漏洞。
确认受影响的版本
以下版本经过Talos测试或验证为易受攻击,或已由供应商确认存在漏洞:
- Planet WGR-500 v1.3411b190912
产品链接
WGR-500 - https://www.planet.com.tw/
CVSSv3评分
8.8 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE
CWE-121 - 基于堆栈的缓冲区溢出
详细说明
WGR-500是一款高性能工业路由器,支持VLAN配置,配备内置防火墙,并提供一套强大的高级网络功能集。
WGR-500包含使用ping实用程序测试与其他计算机网络连接的功能。此功能在Web服务器的formPingCmd函数中实现:
|
|
此函数使用三个提供的参数:ipaddr、counts和submit_url,这些参数被组合以准备各种字符串:
- 在[4]处,构造ping命令字符串:“ping -c
2>&1 > %s &” - 在[5]处,用submit_url字符串填充buffer_260
- 在[6]处,用字符串"ipaddr=
“填充buffer_32 - 在[7]处,将buffer_32字符串(在[6]处填充)连接到buffer_260字符串(在[5]处填充)
formPingCmd API包含多个可通过请求参数利用的堆栈缓冲区溢出漏洞。攻击者可利用这些漏洞实现任意代码执行。以下各节详细说明每种可导致堆栈缓冲区溢出的方式。
CVE-2025-54399 - ipaddr ping字符串
在[2]处获取ipaddr请求参数。然后在[4]处使用此参数构造字符串"ping -c
CVE-2025-54400 - counts ping字符串
在[3]处获取counts请求参数。随后在[4]处使用此参数组合字符串"ping -c
CVE-2025-54401 - submit-url
在[1]处获取submit-url请求参数。然后在[5]处将此参数复制到buffer_260缓冲区,其大小为260字节。然而,在sprintf操作之前未执行大小检查。攻击者可利用此缺乏大小检查的情况导致buffer_260缓冲区溢出,可能实现任意代码执行。
CVE-2025-54402 - submit-url和ipaddr
分别在[1]和[2]处获取submit-url和ipaddr请求参数。随后在[5]处将submit-url参数复制到buffer_260(一个260字节长度的缓冲区)。在[6]处,使用ipaddr参数组合字符串"ipaddr=
时间线
- 2025-07-30 - 初始供应商联系
- 2025-08-01 - 供应商披露
- 2025-08-01 - 供应商确认接收
- 2025-09-01 - 状态更新请求
- 2025-09-01 - 供应商回复
- 2025-09-24 - 供应商回复确认,公布发布日期
- 2025-10-07 - 公开发布
致谢
由Cisco Talos的Francesco Benvenuto发现。