CVE-2026-42037Axios是一个流行的HTTP客户端。在1.0.0至1.15.1之前的版本中,lib/helpers/formDataToStream.js的FormDataPart构造函数在处理Blob对象的type属性时,未正确过滤CRLF字符。攻击者可利用此漏洞在multipart/form-data请求体中注入任意MIME头,从而绕过Node.js v18+的内置HTTP头保护机制。
该漏洞的核心在于Axios库中`lib/helpers/formDataToStream.js`文件的`FormDataPart`构造函数实现存在缺陷。当Axios处理FormData对象时,如果其中包含Blob或File类型的对象,它会读取该对象的`type`属性并将其直接拼接到multipart/form-data请求体中对应部分的`Content-Type`头部字段中。关键问题在于,代码未对`type`属性中的特殊字符(特别是回车符`
`和换行符`
`)进行过滤或转义。攻击者若能控制上传文件的元数据(例如作为代理服务处理用户上传),即可构造恶意的`type`值(如`image/png
X-Attacker: injected`)。当Axios构建请求体时,这些CRLF字符会被解析为换行,从而在multipart边界内插入任意伪造的头部字段。由于Node.js v18及以上版本仅对HTTP请求头进行规范化处理以防止CRLF注入,而该漏洞发生在HTTP消息体内部,因此能够成功绕过浏览器的安全防护,可能导致请求走私、缓存投毒或绕过后端安全检查。