运行固件版本 V15.03.06.44 的腾达 AC7 路由器存在一个严重漏洞,恶意行为者可利用该漏洞执行任意代码并获取根 shell 访问权限。
该漏洞源于路由器 formSetFirewallCfg 函数中的栈溢出漏洞。攻击者可通过精心构造的 HTTP 请求完全攻陷受影响的设备。
这一发现凸显了消费级网络设备中持续存在的安全挑战,也强调了制造商实施强大输入验证机制的必要性。
安全漏洞存在于腾达 AC7 路由器 Web 管理界面的 formSetFirewallCfg 函数中。
根据 GitHub 报告,路由器在处理用户输入前未进行正确验证。
具体而言,当路由器处理通过 Web 界面提交的防火墙配置数据时,它使用 strcpy 函数将用户提供的值直接复制到固定大小的缓冲区中,而未执行适当的边界检查。
腾达 AC7 路由器漏洞
根本问题在于路由器对 “firewallEn” 参数的处理方式。当用户向 “/goform/SetFirewallCfg” 端点提交数据时,路由器获取提交的 “firewallEn” 值,并通过不安全的字符串复制操作将其直接复制到缓冲区中。
如果攻击者提交的数据大于分配的缓冲区大小,就会溢出到相邻的内存位置,有可能覆盖关键数据结构,包括程序计数器寄存器。
报告中写道:“这个漏洞特别危险,因为攻击者可以控制程序的执行流程。通过精心构造有效载荷,有可能将执行重定向到任意代码,从而有效地完全控制设备。”
概念验证利用
研究人员开发了一个概念验证(PoC)利用程序来演示该漏洞。
该利用程序由一个 Python 脚本组成,该脚本向易受攻击的路由器发送精心构造的 HTTP POST 请求。该脚本针对 “/goform/SetFirewallCfg” 端点,使用过大的 “firewallEn” 参数,触发栈溢出情况。
在初步测试中,研究人员证实,在 “firewallEn” 参数中提交过长的字符串会成功触发拒绝服务情况,导致路由器崩溃。
拒绝服务(DoS)攻击
然而,更令人担忧的是,对有效载荷进一步优化后,攻击者可能通过在被攻陷的设备上建立根 shell 来保持持续访问权限。
这个漏洞对腾达 AC7 路由器的所有者具有重大安全影响。
与易受攻击的路由器处于同一网络的攻击者有可能利用此漏洞完全控制设备、拦截网络流量,或将该路由器作为攻击网络中其他设备的起点。
强烈建议腾达 AC7 路由器的用户检查制造商提供的固件更新,若有可用更新,请立即应用。
在没有官方补丁的情况下,网络管理员应考虑实施额外的安全措施,例如仅将路由器管理界面的访问权限限制在受信任的设备上。
随着网络连接日益普及,制造商必须将安全放在首位,实施适当的输入验证,采用内存安全的编程实践,并对报告的漏洞迅速做出响应。
发表评论
您还未登录,请先登录。
登录