Duplicate Advisory: Axios Node HTTP adapter can use an inherited proxy after interceptor config cloning
High severity
GitHub Reviewed
Published
Aug 1, 2026
to the GitHub Advisory Database
•
Updated Sep 1, 2026
Withdrawn
This advisory was withdrawn on Sep 1, 2026
Description
Published by the National Vulnerability Database
Aug 1, 2026
Published to the GitHub Advisory Database
Aug 1, 2026
Reviewed
Sep 1, 2026
Withdrawn
Sep 1, 2026
Last updated
Sep 1, 2026
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-gcfj-64vw-6mp9. This link is maintained to preserve external references.
Original Description
axios in a Node.js deployment using the HTTP adapter can route requests through an attacker-controlled proxy. axios hardens merged request configuration by creating a null-prototype object, but request interceptors run after the merge; a common immutable interceptor pattern such as {...config} or Object.assign({}, config) converts the hardened config back into a regular object. axios then dispatches that object without re-hardening it, and the Node HTTP adapter reads config.proxy through the prototype chain. If an attacker can pollute Object.prototype.proxy, affected requests can be routed through an attacker-controlled proxy. For plaintext HTTP requests, the proxy can observe Authorization headers, Basic auth from config.auth, method, absolute URL, Host, and request body, and can return its own response. This does not establish browser impact or HTTPS header/body disclosure under normal TLS validation. Affected versions are >=0.31.1 (fixed in 0.33.0) and >=1.15.2 (fixed in 1.18.0).
References