CVE-2025-63835CVE-2025-63835是发生在Tenda AC18 v15.03.05.05_multi路由器固件中的一个高危安全漏洞。该漏洞属于栈缓冲区溢出类型,存在于/goform/WifiGuestSet接口的guestSsid参数中。攻击者可以通过向该参数发送超长字符串数据来触发缓冲区溢出,从而可能导致设备拒绝服务(崩溃)或实现远程代码执行。
Tenda AC18是一款面向家庭和小型办公环境的中高端无线路由器,支持802.11ac双频并发传输,具备强大的无线覆盖能力。该设备运行基于Linux的嵌入式操作系统,通过Web管理界面提供各种网络配置功能。WifiGuestSet接口是用于配置访客网络的API端点,允许管理员设置访客WiFi的SSID名称、密码等参数。
该漏洞的危险性在于它只需要低权限认证即可利用,且无需用户交互。攻击者可以通过网络远程发送特制的恶意请求,无需物理接触设备。一旦成功利用,攻击者可以在路由器上执行任意代码,从而完全控制设备,进而可能渗透到整个内部网络、窃取敏感数据或将其用于进一步的网络攻击。此外,设备崩溃会导致网络中断,影响正常业务运营。由于该漏洞影响面较广且利用难度较低,建议用户尽快采取防护措施。
该漏洞的根本原因在于Tenda AC18路由器Web服务器的WifiGuestSet处理函数中,对用户输入的guestSsid参数缺乏有效的长度验证。当用户通过/goform/WifiGuestSet接口设置访客网络SSID时,程序将用户提供的guestSsid值复制到栈上的固定大小缓冲区中,但由于未检查输入长度,当超长字符串被传入时会发生栈缓冲区溢出。
具体攻击流程如下:
1. 攻击者构造包含超长字符串的HTTP POST请求
2. 请求目标为/goform/WifiGuestSet接口
3. guestSsid参数包含超过预期长度的数据(通常数百字节)
4. 服务器端CGI程序使用不安全的strcpy或类似函数将数据复制到栈缓冲区
5. 溢出数据覆盖相邻栈内存,包括函数返回地址
6. 攻击者精心构造的溢出数据可劫持程序执行流
7. 最终在路由器上执行任意代码或导致程序崩溃
该漏洞的利用需要攻击者具有设备的管理权限(低权限即可),通过HTTP协议远程发送恶意请求。由于Tenda路由器通常默认开启远程管理或可通过WAN访问,攻击者可能在互联网一侧发起攻击。建议厂商在后续版本中实现输入长度验证,使用安全的字符串处理函数(如strncpy替代strcpy),并启用栈保护机制(如栈金丝雀、ASLR等)。