Tenda AC1206栈溢出漏洞CVE-2026-36789
Tenda AC1206 是深圳腾达(Tenda)面向家庭与中小型办公场景推出的AC1200 级双频千兆无线路由器,主打高性价比与强覆盖能力。
一、基本情况
Tenda AC1206 是深圳市腾达科技有限公司生产的双频无线路由器,六天线直立设计,采用闭源固件提供 Web 管理界面用于网络配置。

Tenda AC1206 采用双频并发设计,2.4G 穿墙强、5G 高速低延迟,支持 MU‑MIMO,Beamforming + 定向增强,适合120㎡以上户型。
栋科技漏洞库关注到 Tenda AC1206 在V15.03.06.23及之前的固件中存在的栈溢出漏洞,追踪为CVE-2026-36789,CVSS3.X评分7.5。
二、漏洞分析
CVE-2026-36789漏洞是腾达 AC1206 中存在的栈缓冲区溢出漏洞,该漏洞存在于`fromGstDhcpSetSer` CGI 相关函数的处理程序中。
漏洞源于在formDefineTendDa中通过websFormDefine("",(char *)0x0,0,fromGstDhcpSetSer,1);语句注册了fromGstDhcpSetSer处理器。
使得 fromGstDhcpSetSer 函数在处理 HTTP 请求中的 username 和 password 参数时未对输入长度进行有效限制。
导致攻击者可通过发送超长字符串触发栈溢出,覆盖返回地址或相邻栈内存来触发漏洞,造成设备拒绝服务(设备宕机、自动重启)。
具体来说,函数内通过 websGetVar 接口获取由用户可控的用户名、密码参数,输入数据未做长度校验与过滤处理。
代码中执行 __s = websGetVar(a1,"dips",*); 获取参数后,经过若干逻辑处理,会调用`strncpy(val,__s,(sVar6 - sVar7) + 1);
完成字符串拷贝,同时代码中存在 __s_00 = strrchr(__s,0x2e);`(查找字符`.`)的逻辑。
若传入不含英文句点(`.`)的超长字符串,strrchr 会返回空值,使得计算得出的拷贝长度等于原始字符串长度,最终引发缓冲区溢出。

三、POC概念验证
1、漏洞触发条件
可直接调用该漏洞函数,利用路径简单。

2、攻击方式
管理员已设置登录后刷新可查看四、影响范围
Tenda AC1206 ≤ V15.03.06.23
五、修复建议
Tenda AC1206 >V15.03.06.23
六、参考链接
管理员已设置登录后刷新可查看