CVE-2026-42035Axios是流行的Promise HTTP客户端。在1.15.1和0.31.1版本之前,存在原型污染漏洞,允许攻击者注入任意HTTP头部。漏洞位于HTTP适配器中,利用鸭子类型检查缺陷。当Object.prototype被污染特定属性后,Axios会将普通对象误判为FormData,进而调用攻击者控制的getHeaders函数合并请求头。任何依赖树中的原型污染源均可触发此漏洞。
该漏洞的核心在于Axios的lib/adapters/http.js中对数据负载的鸭子类型检查机制。代码通过检查对象是否包含getHeaders、append、pipe、on、once等属性来判断其是否为FormData实例。如果攻击者能够污染Object.prototype,添加这些属性并赋予Symbol.toStringTag,那么一个普通的JavaScript对象会被误认为是FormData。当Axios处理请求时,会调用被污染对象上的getHeaders()方法。由于该方法由攻击者控制,它可以返回任意键值对。这些返回的头部随后会被合并到发出的HTTP请求中。这使得攻击者能够绕过某些安全限制或修改请求行为。值得注意的是,原型污染的原语可以来自应用程序依赖树中的任何其他库。