CVE-2026-101909 Axios 原型污染漏洞
影响原型污染可篡改表单序列化字段名与数据解释,导致请求异常或数据被篡改
Axios 是浏览器与 Node.js 中常用的基于 Promise 的 HTTP 客户端。其 ToFormData 在处理表单序列化时会读取对象原型链上的序列化选项与 visitor 属性,因此在同进程存在原型污染缺陷时,攻击者可借助被污染的原型影响字段命名、数据解释、maxDepth 与 Blob 处理逻辑。该问题已在 0.34.0 和 1.20.0 版本中修复。
影响范围
Axios 0.28.0 至 0.34.0 之前(不含 0.34.0),以及 1.15.1 至 1.20.0 之前(不含 1.20.0)。
漏洞详情
漏洞类型为原型污染导致的不安全属性继承。ToFormData 在序列化时未区分自有属性与继承属性,会读取原型链上的 dots、indexes、metaTokens、maxDepth、visitor、Blob 等配置。当同进程其他组件先造成原型污染后,这些被继承的值会改变表单字段命名与数据解释,maxDepth 可导致请求失败,Blob 会改变取值方式,而被污染的 visitor 在攻击者已具备函数注入能力时可被执行。
利用条件与风险
利用前提是同一进程内已存在另一处原型污染缺陷,攻击者需先污染 Object.prototype 等原型对象。单独利用难度较高,但在存在链式污染场景时可能造成请求数据被篡改或请求失败,实战风险取决于同进程其他漏洞的可利用性。
修复建议
官方已在 0.34.0 和 1.20.0 版本中修复,建议升级至对应修复版本或更高版本。临时缓解措施包括排查并修复同进程内的原型污染来源、冻结或净化关键原型对象,暂无其他公开的官方临时缓解方案。
Axios is a promise-based HTTP client for the browser and Node.js. From 0.28.0 until 0.34.0 and 1.15.1 until 1.20.0, ToFormData processes inherited serialization options and visitor properties supplied through prototype pollution. A separate same-process prototype-pollution flaw supplies inherited dots, indexes, metaTokens, maxDepth, visitor, or Blob values before object serialization. The inherited options alter toFormData field naming and data interpretation, maxDepth can force request failure, Blob changes value handling, and a polluted visitor can execute when an attacker already has the stronger ability to inject a function. Serialized field naming and data interpretation can change, maxDepth can cause request failure, Blob can alter value handling, and a polluted visitor can execute under the stronger function-injection primitive. This issue is fixed in versions 0.34.0 and 1.20.0.