CVE-2026-42040Axios是一个流行的基于Promise的HTTP客户端。在1.15.1和0.31.1之前的版本中,该库的`lib/helpers/AxiosURLSearchParams.js`文件存在安全缺陷。其`encode()`函数中的字符映射表错误地将安全编码的空字节序列(%00)反向还原为原始的空字节字符。尽管标准的axios请求流程未受直接严重影响,但在特定场景下,此行为可能破坏HTTP协议规范,导致请求走私或绕过安全过滤器。官方已在后续版本中修复了该问题。
该漏洞的核心在于Axios处理URL参数编码时的逻辑缺陷。在`AxiosURLSearchParams.js`组件中,`encode()`函数使用了一个字符映射表来辅助编码过程。正常情况下,JavaScript的`encodeURIComponent`函数会将空字节(`\x00`)正确转义为安全序列`%00`。然而,Axios的`charMap`中存在条目`'%00': '\x00'`,这导致已编码的安全字符串被反向解析回原始的空字节。这种非标准的解码行为违反了HTTP请求的编码规范。攻击者可利用此漏洞,通过构造包含`%00`的恶意参数,使得最终发出的HTTP请求中包含原始控制字符。这可能导致后端服务器解析异常,例如解析中断或字段截断,进而可能引发HTTP请求走私或CRLF注入攻击,从而绕过基于正则匹配的WAF或安全防护机制。