CVE-2025-60686CVE-2025-60686是ToToLink路由器中的本地栈缓冲区溢出漏洞。该漏洞影响A720R(V4.1.5cu.614_B20230630)、LR1200GB(V9.1.0u.6619_B20230130)和NR1800X(V9.1.0u.6681_B20230703)三个型号。漏洞存在于路由器的infostat.cgi和cstecgi.cgi二进制程序中,这两个程序在解析/proc/net/arp文件内容时,使用sscanf()函数配合"%s"格式说明符将数据写入固定大小的栈缓冲区,但未进行长度验证。攻击者可以通过控制/proc/net/arp文件的内容来触发内存损坏,从而可能导致拒绝服务或潜在的任意代码执行。由于攻击向量为本地且无需认证和用户交互,攻击复杂度较低,具有一定的实际威胁性。
该漏洞的根本原因在于infostat.cgi和cstecgi.cgi程序在解析ARP表时使用了不安全的sscanf()函数调用。具体问题包括:1)程序使用"%s"格式说明符读取/proc/net/arp中的数据;2)数据被直接写入固定大小的栈缓冲区而没有长度检查;3)一个函数将用户控制的数据写入单字节缓冲区,另一个函数将数据写入相邻的小数组且均无边界检查。由于/proc/net/arp文件可以被本地攻击者修改,攻击者可以在ARP表中注入超长字符串,当CGI程序解析该文件时,超长的数据会溢出栈缓冲区,覆写相邻的栈内存,包括返回地址和函数指针等关键数据。成功利用此漏洞可导致程序崩溃(DoS)或通过覆盖返回地址实现任意代码执行。