CVE-2025-60690CVE-2025-60690是一个影响Linksys E1200 v2路由器的严重安全漏洞,存在于设备的httpd二进制程序中的get_merge_ipaddr函数。该漏洞属于基于栈的缓冲区溢出问题,CVSS评分高达8.8,属于高危级别。漏洞的根本原因在于get_merge_ipaddr函数在处理用户输入的CGI参数时存在边界检查缺陷。攻击者可以通过构造特殊的HTTP请求,提交多个名称匹配特定模式的CGI参数(<parameter>_0至<parameter>_3),这些参数值将被无限制地拼接到一个固定大小的栈缓冲区中。由于函数未对输入数据进行长度验证,当攻击者提交超长字符串时,会导致缓冲区溢出,覆盖相邻的栈内存区域。攻击者可以利用此漏洞在路由器上执行任意代码或造成拒绝服务(DoS)攻击。值得注意的是,该漏洞的利用无需任何认证,也不需要用户交互,攻击者只需能够访问路由器的网络即可发动攻击。这使得该漏洞具有极高的危害性,尤其是对于直接暴露在互联网或不受信任网络环境中的路由器设备。攻击者可以完全控制路由器,执行恶意命令、窃取网络流量或将其纳入僵尸网络。
该漏洞的技术核心在于Linksys E1200 v2路由器固件(E1200_v2.0.11.001_us.tar.gz)中的httpd服务存在栈缓冲区溢出。具体来说,get_merge_ipaddr函数的设计存在严重的安全缺陷:1)函数接收四个用户可控的CGI参数,参数命名遵循<parameter>_0、<parameter>_1、<parameter>_2、<parameter>_3的模式;2)这些参数值被直接拼接存储到一个固定大小的栈缓冲区(变量a2)中;3)函数完全缺少边界检查逻辑,未验证每个参数的长度或总长度是否超过缓冲区容量。在正常情况下,函数可能期望接收短字符串用于IP地址合并等操作,但攻击者可以提交超长字符串。当拼接后的数据超过缓冲区大小时,会发生栈溢出,覆盖函数返回地址、保存的寄存器值以及其他栈帧数据。攻击者通过精心构造溢出数据,可以覆盖返回地址指向恶意代码(如shellcode),从而在路由器上以root权限执行任意命令。由于httpd通常以root权限运行,攻击成功后将获得完全的系统控制权。攻击者可以通过HTTP请求的特定参数发送shellcode,并利用缓冲区溢出劫持程序执行流程。