Planet WGR-500 路由器格式字符串漏洞分析

本文详细分析了Planet WGR-500路由器v1.3411b190912版本中formPingCmd功能存在的格式字符串漏洞。攻击者可通过特制HTTP请求利用此漏洞实现内存破坏和任意代码执行,CVSSv3评分为8.8分。

TALOS-2025-2228 || Cisco Talos情报组 - 全面威胁情报

Planet WGR-500 formPingCmd格式字符串漏洞

2025年10月7日

CVE编号

CVE-2025-48826

概述

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-134 - 使用外部控制的格式字符串

详细说明

WGR-500是一款高性能工业路由器,支持VLAN配置,配备内置防火墙,并提供一套强大的高级网络功能集。

WGR-500具有使用ping测试与其他计算机连接的功能。此功能通过Web服务器的formPingCmd函数实现:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
void formPingCmd(undefined4 param_1)
{
    char *submit_url;
    char* ipaddr;
    char* counts;
    [...]
    char buffer_32 [32];
    char ping_command [100];
    char buffer_260 [260];

[1] submit_url = get_from_params(param_1,"submit-url","");
    ipaddr = get_from_params(param_1,"ipaddr","");
    counts = get_from_params(param_1,"counts","");
    sprintf(ping_command,"ping -c %s %s 2>&1 > %s &",counts,ipaddr,"/tmp/pingResult");
[2] sprintf(buffer_260,submit_url);
    [...]
    return;
}

该函数使用在[1]处获取的参数submit-url作为[2]处sprintf调用的第二个参数。sprintf的第二个参数用作格式字符串;因此,submit-url被当作格式字符串处理。攻击者可以利用此格式字符串漏洞实现任意代码执行。

时间线

  • 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发现。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计