Executive brief
Axios is a popular HTTP client library used by Node.js applications to make web requests. A vulnerability allows attackers who can pollute the JavaScript Object prototype to redirect HTTP requests through a malicious proxy server. The proxy can intercept sensitive data like authentication tokens, request content, and other metadata from plaintext HTTP traffic. This attack requires the application to use request interceptors (a common pattern) and relies on prior prototype pollution, but the impact is significant for applications handling sensitive data.
Technical details
The vulnerability is a prototype pollution bypass in Axios's Node.js HTTP adapter. Axios creates a null-prototype object when merging request config to prevent prototype pollution, but request interceptors run after this merge and commonly return a cloned config as a regular object (e.g., using {...config} or Object.assign). The dispatched config is not re-hardened, allowing the HTTP adapter to read config.proxy through the prototype chain. If an attacker has polluted Object.prototype.proxy elsewhere in the process, the request is routed through the attacker's proxy. For plaintext HTTP requests, this discloses Authorization headers, Basic auth credentials, method, URL, Host header, and request body. The attack is limited to Node.js HTTP adapter usage and does not affect HTTPS headers under normal TLS validation. Affected versions are ≥0.31.1 (fixed in 0.33.0) and ≥1.15.2 (fixed in 1.18.0); users should upgrade immediately.
Affected products
- axios axios >=0.31.1, <0.33.0 and >=1.15.2, <1.18.0
Timeline
- 2026-07-06: disclosed: Original advisory GHSA-gcfj-64vw-6mp9 published
- 2026-08-01: advisory: Duplicate advisory GHSA-68jp-44vc-2x5h published
- 2026-<UNKN: patched: Fixed in versions 0.33.0 and 1.18.0
- 2026-09-01: other: Duplicate advisory withdrawn; references preserved