安全研究员Joward发布了针对影响TP-Link TL-WR940N路由器的关键漏洞(追踪为CVE-2024-54887)的深入分析和概念验证(PoC)漏洞。 该漏洞是在设备处理 IPv6 DNS 服务器配置参数时发现的缓冲区溢出漏洞,可能允许攻击者执行任意代码或引发拒绝服务攻击。
Joward 的研究发现,路由器 Web 界面中的两个参数–dnsserver1 和 dnsserver2–在将字符串长度复制到内存之前未能进行验证。 Joward 解释说:“经初步观察,我们似乎发现了一个堆栈缓冲区溢出漏洞。” 这个问题影响到运行最新固件的 TL-WR940N 路由器的硬件版本 3 和 4,并已在后续硬件迭代中得到缓解。
对该设备固件的静态分析发现了几个关键缺陷,包括缺乏 NX 和 PIE 保护等现代缓解措施。 这些缺陷大大方便了研究人员和潜在的攻击者利用漏洞。
来源:Joward
PoC 演示了一种利用漏洞的复杂方法,利用面向返回编程 (ROP) 技术实现远程代码执行。 从识别不安全的函数调用到构建功能性漏洞利用,Joward 细致地详述了整个过程:
- 静态和动态分析: 分析从使用 Firmadyne 和 Ghidra 等工具解包和仿真路由器固件开始。 Joward 指出:“dnsserver1 和 dnsserver2 参数允许用户选择路由器默认使用的 IPv6 DNS 服务器,而这两个参数在复制到内存之前似乎都没有进行长度检查。”
- ROP 漏洞开发: 一系列精心制作的小工具为 shellcode 的执行提供了便利。 “为 MIPS Linux 编写 ROP 漏洞利用程序有一些 x86 漏洞利用程序所没有的独特考虑因素,它不像硬编码跳转到堆栈上的某个位置那么简单。 这些问题主要有:高速缓存不连贯和延迟指令。” Joward 解释说。
- 自定义外壳代码: 为了简单起见,该漏洞利用了绑定外壳,允许他人复制攻击,而无需修改 IP 地址。 这种 shellcode 可以完全控制被攻击的设备。
CVE-2024-54887 给依赖过时硬件的用户带来了严重风险。 由于受影响的设备没有实施地址空间布局随机化(ASLR),该漏洞可以可靠地实现远程代码执行。 Joward 强调了该漏洞的严重性: “我们不仅可以让程序崩溃,还可能控制执行流程。”
不幸的是,TL-WR940N 的硬件版本 3 和 4 已达到生命周期末期支持,不再接受安全更新。 TP-Link 在披露过程中确认了这一点,并鼓励用户升级到更新的设备,以确保持续的保护。
有兴趣了解技术细节的用户,可在 GitHub 上查看 PoC 和其他资源。
发表评论
您还未登录,请先登录。
登录