关键漏洞信息 影响产品 厂商: Tenda (深圳市腾达科技股份有限公司) 产品: Tenda RX3 受影响版本: Firmware V16.03.13.11 漏洞详情 类型: Buffer Overflow (Binary) 影响接口: Wi-Fi schedule configuration ( ) 漏洞描述 在进行安全审查时,在 Tenda RX3 路由器固件(版本 V16.03.13.11)的 Wi-Fi 调度配置端点 中发现了关键的缓冲区溢出漏洞。该漏洞存在于 函数中,该函数通过 接口检索用户控制的参数 和 。这些值被复制到一个堆上分配的固定大小的缓冲区(25字节)中,使用不安全的 函数。由于没有对输入进行长度验证,攻击者可以提供一个过长的字符串来溢出缓冲区,导致内存损坏、拒绝服务(DoS)或潜在的任意代码执行。 根因分析 固定分配: 函数使用 在堆上分配了一个 25 字节的缓冲区。 不安全复制: 代码使用 和 来复制 和 值。 利用: 攻击者可以提供一个显著长于分配空间的 参数,导致缓冲区溢出,损坏堆和相邻的内存结构,或在函数逻辑中的其他堆栈操作中触发崩溃或执行劫持。 漏洞代码逻辑 影响 拒绝服务 (DoS): 损坏内存结构将导致 进程崩溃,使设备管理界面不可用。 远程代码执行 (RCE): 通过精心操控溢出,攻击者可能劫持应用的控制流。 漏洞验证示例(Python脚本) 展示如何通过发送人为制造的 来触发溢出。 其他验证方法 固件模拟成功执行,模拟环境中可访问 Web 接口并触发漏洞。 缓解措施 1. 使用安全函数: 替换 为 ,并确保长度不超过剩余缓冲区容量。 2. 预复制验证: 实现严格验证时间相关字符串(例如确保遵循 "HHMM" 格式并且不超过 4-5 个字符)。 3. 缓冲区管理: 确保分配的内存足以容纳所有可能的有效输入加上空终止符。