Executive brief
Axios is a widely-used HTTP client library for Node.js. Due to improper hardening of request configuration after interceptors run, attackers who can pollute the Object.prototype can redirect HTTP requests through a malicious proxy server, potentially exposing sensitive data such as authorization headers, request bodies, and other metadata. For plaintext HTTP traffic, the attacker-controlled proxy can observe and manipulate all request and response content.
Technical details
The vulnerability is a prototype pollution bypass in axios's Node.js HTTP adapter. Axios harddens merged request config by creating null-prototype objects to prevent prototype pollution, but request interceptors run after the merge and may return a replacement config. Common immutable patterns like {...config} or Object.assign({}, config) convert the hardened config back to a regular object. Axios then dispatches this object without re-hardening it. When the Node HTTP adapter reads config.proxy through the prototype chain, a polluted Object.prototype.proxy can redirect requests. Attack preconditions include the ability to trigger prototype pollution elsewhere in the process and use of a request interceptor that clones the config object. Patched versions are 0.33.0 and 1.18.0; affected versions are ≥0.31.1 and ≥1.15.2.
Affected products
- axios axios >=0.31.1 (fixed in 0.33.0) and >=1.15.2 (fixed in 1.18.0)
Timeline
- 2026-07-06: disclosed
- 2026-07-06: patched: Patched in versions 0.33.0 and 1.18.0