关键信息摘要 目标信息 设备: Tenda AC8 固件版本: V16.03.33.05 厂商网站: https://www.tendacn.com 固件参考: AC8v4.0 Firmware - Tenda Global (English) 漏洞类型 漏洞类型: 基于栈的缓冲区溢出漏洞 漏洞摘要 该缓冲区溢出漏洞存在于运行固件版本 V16.03.33.05 的 Tenda AC8 路由器中。漏洞源于嵌入式 服务中的 接口,未能正确验证用户提供的 参数。 攻击者可以通过发送带有过长 值的特制 HTTP 请求来利用此漏洞,可能导致远程代码执行或拒绝服务 (DoS) 条件。 漏洞描述 Tenda AC8 路由器在固件版本 V16.03.33.05 中存在缓冲区溢出漏洞。问题在于 端点,其中 服务未能有效地过滤或验证 参数的长度。 由于未正确检查输入数据,远程攻击者可以通过提供过长字符串触发内存损坏。这可能导致任意代码执行或使设备崩溃。 漏洞分析 使用 IDA Pro,可以在 二进制文件的 函数中观察到该漏洞。在第 89 行,此函数调用易受攻击的子例程 。 进一步分析 显示不安全的字符串解析和复制操作。 该函数直接从HTTP请求中检索 参数。此参数完全由用户控制,并且不受任何长度或内容验证的约束。 然后执行以下代码: 在这里,输入被解析为本地堆栈缓冲区 和 ,每个缓冲区的大小仅为 4 字节。由于 格式字符串没有任何宽度限制,过长的 参数将导致缓冲区溢出,进而导致堆栈破坏。 攻击者可以通过 API 请求、恶意配置文件或构造的 HTTP 载荷利用此漏洞,最终导致程序崩溃或实现任意代码执行。 POC (概念验证) 下面的测试概念代码演示了如何触发该漏洞: 预期结果 运行该利用产生 , 表明程序试图访问无效的内存地址。这证实了一个严重内存安全问题的存在。