CVE-2025-60674CVE-2025-60674是D-Link DIR-878A1路由器固件中的一个高危安全漏洞,位于rc二进制文件的USB存储处理模块中。该漏洞为栈缓冲区溢出类型,CVSS评分6.8,属于中等严重程度。漏洞产生的根本原因是在处理USB设备序列号时,程序使用sscanf函数将数据写入固定大小的64字节栈缓冲区,但实际通过fgets函数读取的数据最多可达127字节,这种不匹配导致了经典的栈缓冲区溢出条件。攻击者需要具备物理访问权限或能够控制连接到路由器的USB设备,即可触发此漏洞。一旦成功利用,攻击者可能在路由器上执行任意代码,从而完全控制设备。由于该漏洞的利用需要物理接触USB端口,攻击复杂度相对较高,但考虑到D-Link路由器通常部署在家庭和小型办公网络环境中,其潜在影响范围仍然值得重视。漏洞于2025年11月13日公开披露,建议用户及时采取防护措施。
该漏洞存在于D-Link DIR-878A1路由器固件FW101B04.bin的rc二进制文件中,具体位于USB存储处理模块。当路由器系统读取插入的USB设备的序列号(Serial Number)字段时,代码流程如下:首先通过fgets函数从USB设备读取序列号字符串,该函数支持读取最多127字节的数据;随后使用sscanf函数将读取到的序列号数据解析并写入一个预分配的64字节栈缓冲区。由于fgets的读取上限(127字节)大于栈缓冲区的实际大小(64字节),当USB设备提供的序列号长度超过64字节时,超出的数据将溢出到相邻的栈内存区域,包括函数返回地址等关键数据。攻击者可以通过精心构造超长序列号的USB设备,使溢出的数据覆盖返回地址,劫持程序执行流程,最终在路由器上实现任意代码执行。攻击的成功依赖于物理访问USB端口或控制USB设备的能力,无需任何认证凭证,也不需要用户交互。该漏洞的CVSS向量为CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,表明物理攻击向量、低攻击复杂度、无权限要求、无用户交互,以及高影响的安全影响。