Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-67320

CVE-2026-67320: axios Information Disclosure Vulnerability

CVE-2026-67320 is an information disclosure vulnerability in axios that allows attackers to route requests through a malicious proxy via prototype pollution. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2026-67320 Overview

CVE-2026-67320 is an information disclosure vulnerability in the axios HTTP client library affecting Node.js deployments that use the HTTP adapter. The flaw allows attackers to route outbound requests through an attacker-controlled proxy by polluting Object.prototype.proxy. Axios hardens the merged request configuration with a null-prototype object, but request interceptors that use {...config} or Object.assign({}, config) patterns convert the hardened configuration back into a regular object. Axios then dispatches the request without re-hardening, and the Node HTTP adapter reads config.proxy through the prototype chain. Affected versions are >=0.31.1 (fixed in 0.33.0) and >=1.15.2 (fixed in 1.18.0).

Critical Impact

Attacker-controlled proxies can intercept plaintext HTTP requests, exposing Authorization headers, Basic auth credentials from config.auth, request methods, absolute URLs, Host headers, and request bodies.

Affected Products

  • axios versions >=0.31.1 and <0.33.0
  • axios versions >=1.15.2 and <1.18.0
  • Node.js applications using the axios HTTP adapter with interceptors

Discovery Timeline

  • 2026-08-01 - CVE-2026-67320 published to NVD
  • 2026-08-03 - Last updated in NVD database

Technical Details for CVE-2026-67320

Vulnerability Analysis

The vulnerability is a prototype pollution weakness classified under [CWE-200: Exposure of Sensitive Information to an Unauthorized Actor]. Axios attempts to defend against prototype pollution by constructing the merged request configuration as a null-prototype object. This hardening prevents lookups from resolving to Object.prototype properties.

Request interceptors, however, execute after configuration merging. Common immutable-update patterns such as spread syntax ({...config}) or Object.assign({}, config) create a new object with the default Object.prototype. Axios does not re-harden the configuration before dispatch, so downstream property reads traverse the prototype chain.

The Node HTTP adapter then reads config.proxy from the mutated configuration. If an attacker has polluted Object.prototype.proxy earlier in the application lifecycle, the adapter honors the attacker-supplied proxy for the outbound request.

Root Cause

The root cause is inconsistent hardening of the configuration object across the axios request lifecycle. The initial merge produces a safe null-prototype object, but interceptor code paths silently reintroduce the default prototype chain without triggering re-hardening.

Attack Vector

Exploitation requires a prototype pollution primitive elsewhere in the application that assigns Object.prototype.proxy. Once pollution is achieved, any subsequent axios request that flows through an interceptor using spread or Object.assign copies is routed through the attacker's proxy. For plaintext HTTP traffic, the proxy can read Authorization headers, config.auth Basic credentials, the absolute URL, the Host header, and the request body. The proxy can also return a forged response. HTTPS traffic protected by normal TLS validation is not exposed for header or body disclosure.

javascript
// Patch reference from lib/env/data.js
-export const VERSION = "1.15.2";
+export const VERSION = "1.16.0";

Source: GitHub Commit df53d7d. The commit reflects the release bump toward the fixed branch culminating in 1.18.0.

Detection Methods for CVE-2026-67320

Indicators of Compromise

  • Unexpected outbound HTTP connections from Node.js processes to unknown proxy hosts or non-standard ports.
  • Presence of Object.prototype.proxy assignment in runtime heap snapshots or logs.
  • Application logs showing axios requests with proxy metadata that was never configured by the application.

Detection Strategies

  • Perform software composition analysis to identify axios versions >=0.31.1 <0.33.0 and >=1.15.2 <1.18.0 in package.json and lockfiles.
  • Static analysis for interceptor patterns using {...config} or Object.assign({}, config) that reintroduce the default prototype.
  • Runtime detection using Node.js diagnostic hooks to flag reads of proxy that resolve via the prototype chain.

Monitoring Recommendations

  • Monitor egress traffic for anomalous proxy destinations from application workloads and correlate with process identity.
  • Alert on plaintext HTTP requests carrying Authorization headers or Basic auth credentials leaving the network perimeter.
  • Track dependency updates and CI/CD pipelines for axios upgrades and verify fixed versions are deployed.

How to Mitigate CVE-2026-67320

Immediate Actions Required

  • Upgrade axios to 1.18.0 or later for the 1.x branch, or to 0.33.0 for the 0.x branch.
  • Audit application code and third-party dependencies for prototype pollution sinks that can assign Object.prototype.proxy.
  • Refactor interceptors to preserve the null-prototype configuration or use Object.create(null) when copying.

Patch Information

The upstream fix is delivered in axios 0.33.0 and 1.18.0. See the GitHub Security Advisory GHSA-gcfj-64vw-6mp9, the VulnCheck Advisory, and the upstream commit for details.

Workarounds

  • Enforce HTTPS for all outbound requests so TLS validation blocks header and body disclosure to an untrusted proxy.
  • Freeze Object.prototype at application startup using Object.freeze(Object.prototype) to block runtime pollution.
  • Explicitly set proxy: false on axios request configurations that must never route through a proxy.
bash
# Update to fixed axios versions
npm install axios@^1.18.0
# or for legacy 0.x users
npm install axios@^0.33.0

# Verify installed version
npm ls axios

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.