CVE-2025-60679CVE-2025-60679是D-Link DIR-816A2路由器固件中的一个高危栈缓冲区溢出漏洞。该漏洞存在于upload.cgi模块中,该模块负责处理固件版本信息。攻击者可以通过精心构造的输入触发缓冲区溢出,从而在受影响设备上执行任意代码。由于该漏洞的CVSS评分达到8.8,属于高危级别,且攻击复杂度低,无需特殊权限即可利用,对使用该型号路由器的用户构成严重安全威胁。攻击者利用/proc/version文件内容被不正确处理的机会,通过溢出覆盖栈上的返回地址和控制流,最终实现远程代码执行。
漏洞根源在于upload.cgi模块处理/proc/version文件内容时的内存管理不当。具体流程如下:首先,程序通过read()函数将/proc/version的内容读取到一个固定大小为512字节的栈缓冲区中。随后,使用sprintf()函数将该缓冲区内容与一个包含29字节常量的另一个512字节缓冲区进行字符串拼接。由于sprintf()函数不执行边界检查,当输入的/proc/version内容超过481字节(512-29-2,-2为字符串终止符和保险空间)时,就会发生栈缓冲区溢出。溢出的数据会覆盖栈上的保存的返回地址、帧指针以及其他关键数据结构。攻击者可以通过修改/proc/version的内容(需要一定权限或通过其他漏洞),控制溢出数据,精心构造ROP链或shellcode,最终实现任意代码执行。由于路由器通常以root权限运行,成功利用此漏洞将导致完全的系统沦陷。