关键词
安全漏洞
运行固件版本 V15.03.06.44 的 Tenda AC7 路由器中存在一个严重漏洞,允许恶意行为者执行任意代码并获得 root shell 访问权限。
该漏洞源自路由器 formSetFirewallCfg 函数中的堆栈溢出漏洞。攻击者可以使用特制的 HTTP 请求完全入侵受影响的设备。
这一发现凸显了消费网络设备中持续存在的安全挑战,并强调了制造商实施强大的输入验证机制的必要性。
该安全漏洞存在于 Tenda AC7 路由器的 Web 管理界面的 formSetFirewallCfg 函数中。
据 GitHub报告,该路由器在处理用户输入之前未能正确验证用户输入。
具体来说,当路由器处理通过 Web 界面提交的防火墙配置数据时,它直接使用 strcpy 函数将用户提供的值复制到固定大小的缓冲区中,而不执行适当的边界检查。
Tenda AC7 路由器漏洞
根本问题在于路由器如何处理“firewallEn”参数。当用户向“/goform/SetFirewallCfg”端点提交数据时,路由器会获取提交的“firewallEn”值,并使用不安全的字符串复制操作将其直接复制到缓冲区中。
如果攻击者提交的数据大于分配的缓冲区大小,它会溢出到相邻的内存位置,可能会覆盖关键的数据结构,包括程序计数器寄存器:
报告中写道:“该漏洞特别危险,因为攻击者可以控制程序的执行流程。”
“通过精心设计有效载荷,可以将执行重定向到任意代码,从而有效地获得对设备的完全控制。”
概念验证利用
研究人员开发了一个概念验证(PoC)漏洞来展示此漏洞。
该漏洞利用包含一个 Python 脚本,该脚本会向存在漏洞的路由器发送特制的 HTTP POST 请求。该脚本以“/goform/SetFirewallCfg”端点为目标,并带有一个超大的“firewallEn”参数,从而触发堆栈溢出条件。
以下代码片段说明了该漏洞的核心:
在初步测试中,研究人员证实,在“firewallEn”参数中提交过长的字符串会成功触发拒绝服务条件,导致路由器崩溃。
然而更令人担忧的是,进一步改进有效载荷可以允许攻击者通过在受感染的设备上建立 root shell 来维持持续访问。
该漏洞对于 Tenda AC7 路由器的拥有者来说具有重大的安全隐患。
与存在漏洞的路由器位于同一网络中的攻击者可能会利用此漏洞来完全控制设备、拦截网络流量或使用路由器作为攻击网络上其他设备的发射点。
强烈建议 Tenda AC7 路由器用户检查制造商提供的固件更新,并在可用时立即应用。
在没有官方补丁的情况下,网络管理员应该考虑实施额外的安全措施,例如仅限于受信任的设备访问路由器的管理界面。
随着连接变得越来越普遍,制造商必须通过实施适当的输入验证、使用内存安全的编程实践以及及时响应报告的漏洞来优先考虑安全性。
来源:https://cybersecuritynews.com/tenda-ac7-routers-gain-root-shell/
END
原文始发于微信公众号(安全圈):【安全圈】Tenda AC7 路由器漏洞使攻击者能够通过恶意负载获取 Root Shell
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论