ZeroHour

CVE-2026-67320

PoC mass

Prototype Pollution Enables Attacker Proxy Interception in axios (Node.js)

CVSS 4.0
8.3 high
EPSS
<1%p30
Published
()
Modified
AI analysis

axios for Node.js hardens its merged request configuration as a null-prototype object, but request interceptors run after that merge, so a common immutable cloning pattern such as {...config} or Object.assign({}, config) converts the config back into a regular object and the Node HTTP adapter then reads config.proxy through the prototype chain. If an attacker can achieve prototype pollution of Object.prototype.proxy — typically via a separate pollution bug in the application or one of its dependencies — affected outgoing requests are routed through an attacker-controlled proxy. For plaintext HTTP requests, the proxy can observe the Authorization header, Basic-auth credentials from config.auth, the method, absolute URL, Host header and request body, and can return its own response; HTTPS requests under normal TLS validation and browser usage are not established as impacted. Anyone running affected axios versions in a Node.js HTTP-adapter deployment is affected: versions >= 0.31.1 (fixed in 0.33.0) on the 0.x line and >= 1.15.2 (fixed in 1.18.0) on the 1.x line. No exploitation in the wild is currently known; the issue has a public advisory/PoC reference (GHSA-gcfj-64vw-6mp9), a 0.4% 30-day EPSS probability (30th percentile), and is not in CISA KEV.

What to do: Upgrade to axios 0.33.0 or later on the 0.x line, or 1.18.0 or later on the 1.x line. Until patched, audit Node.js services for request interceptors that clone configuration with {...config} or Object.assign({}, config), remediate any prototype-pollution sinks in application code or dependencies that could set Object.prototype.proxy, and prioritize patching for services that send credentials over plaintext HTTP, since HTTPS traffic under normal TLS validation is not shown to leak headers or bodies.

Affected
axios>= 0.31.1, fixed in 0.33.0 (0.x line, i.e., 0.31.1 through 0.32.x)
axios>= 1.15.2, fixed in 1.18.0 (1.x line, i.e., 1.15.2 through 1.17.x)
Estimated exposure
massmillions of Node.js installations (axios records tens of millions of npm downloads weekly) — axios is among the most-downloaded packages on npm (tens of millions of downloads per week) and is a default HTTP client in a large share of Node.js back-ends, so the potential install base is in the millions, though practical…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

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).

Vendors
axios
Products
axios
Weakness
CWE-200
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.