CVE-2025-62291CVE-2025-62291是strongSwan中eap-mschapv2插件的一个高危安全漏洞,CVSS评分达到8.1分。该漏洞位于客户端代码中,攻击者可以通过构造恶意的EAP-MSCHAPv2服务器来利用此漏洞。当攻击者向存在漏洞的strongSwan客户端发送大小在6到8字节之间的特制消息时,会触发整数下溢(integer underflow)问题。由于该整数下溢发生在长度计算环节,错误的计算结果可能导致堆内存分配不足,进而引发堆缓冲区溢出(heap-based buffer overflow)。此漏洞影响strongSwan 6.0.3之前的所有版本,攻击者无需认证即可发起攻击,且无需用户交互。成功利用此漏洞可能导致敏感信息泄露或远程代码执行。
该漏洞的根本原因在于eap-mschapv2插件客户端代码中对消息长度的验证不足。当解析来自EAP-MSCHAPv2服务器的消息时,代码使用有符号整数进行长度计算。对于大小在6到8字节范围内的消息,由于整数下溢,长度值会变成一个非常大的正数或负数。在随后的内存操作中,这个错误的值被用作分配堆缓冲区的尺寸或数组索引,导致缓冲区分配过小或越界访问。攻击者控制的服务器可以精心构造消息内容,触发特定的消息长度边界条件。具体来说,当消息大小为6、7或8字节时,某些长度减法操作会产生下溢。例如,如果代码执行类似`length = message_size - 6`的运算,当message_size为6时,结果为0;但当使用有符号整数且处理不当时,可能产生负数,进而在后续使用无符号整数或进行内存操作时转变为超大正值,造成堆缓冲区溢出。