Skip to main content

Axios EUVDEUVD-2026-88380

| CVE-2026-101904 MEDIUM
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-09-28 GitHub_M GHSA-j8rh-479h-cp32
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Exploit pre-existing proto-pollution to set Object.prototype.headers
  2. Delivery
    App runs axios request with interceptor returning header-less config
  3. Exploit
    dispatchRequest resolves inherited headers on normalization
  4. Execution
    Attacker headers injected into outbound request
  5. Impact
    Downstream honors forged authorization-related values

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
Exploitation Conditions

Exploitation is NOT possible against axios alone. It requires ALL of: (1) a separate, pre-existing same-process prototype-pollution vulnerability that can set Object.prototype.headers; (2) the application using trusted request interceptors that return a NEW ordinary configuration object lacking its own headers property, so normalization falls through to the inherited prototype value; and (3) affected axios versions 1.0.0 through 1.19.x. The AT:P (attack requirements) flag in the vendor vector encodes this dependency. The flaw is limited by being inert without the chained proto-pollution primitive, which is the true root cause; axios 1.20.0+ neutralizes the gadget by filtering shared-prototype-inherited config values.

Impact

This is a defense-in-depth 'gadget' fix rather than a standalone exploitable flaw. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N, VC:N/VI:N/VA:N, SC:L/SI:H/SA:N) yields 6.9 (Medium) and, critically, sets AT:P (attack requirements present) - reflecting that exploitation is impossible without a SEPARATE same-process prototype-pollution vulnerability that plants Object.prototype.headers, plus trusted interceptors that return a replacement config lacking an own headers property. There is no EPSS score, no CISA KEV listing, and no public POC. The description confirms the flaw is inert in isolation: axios itself is only the vehicle that resolves the polluted inherited headers during dispatchRequest normalization. My independent read lowers attack complexity to AC:H (3.1) because the required proto-pollution primitive and specific interceptor pattern are non-default and attacker-uncontrollable from axios alone. The 4.0 impact metrics point to subsequent-system integrity (SI:H) - attacker-controlled headers, including authorization-related values, injected into downstream requests - which is fundamentally an integrity/header-injection issue, only secondarily an information-disclosure one (SC:L). Verdict: NOT a standalone priority; real-world risk is contingent on already having a proto-pollution bug in the same process, at which point the proto-pollution itself is the more severe root cause. Treat as hardening; patch during normal dependency maintenance.

Exploit ScenarioDerived

In an application already carrying a separate same-process prototype-pollution vulnerability, an attacker sets Object.prototype.headers to attacker-controlled values (e.g. a forged Authorization header). A trusted request interceptor returns a new plain config object without its own headers property, so after the interceptor chain dispatchRequest normalizes and resolves the inherited prototype headers into the outbound request, which downstream processing then honors. No public exploit code exists, and the chain requires an independent proto-pollution primitive to be present.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 28, 2026

Axios versions 1.0.0 through 1.19.x can leak attacker-controlled headers - including authorization-related values - into outgoing HTTP requests, but only as a secondary gadget in a chain: a separate same-process prototype-pollution flaw must first set Object.prototype.headers, and the application must use trusted request interceptors that return a fresh ordinary configuration object without its own headers property, causing dispatchRequest's normalization step to fall through to the inherited prototype value. The issue is fixed in Axios 1.20.0, which filters shared-prototype-inherited values during config merging and interceptor replacement; no public exploit code has been identified at time of analysis and the defect is inert in isolation, making this a defense-in-depth hardening fix rather than a standalone exploitable vulnerability. Authentication requirements are unauthenticated per the CVSS vector (PR:N), but exploitation is gated by the AT:P attack-requirements flag and the pre-existing pollution primitive.

RemediationAI

Upgrade Axios to 1.20.0 or later, the vendor-released patch version that neutralizes the gadget by filtering shared-prototype-inherited configuration values during merge and interceptor replacement; consult the GitHub Security Advisory GHSA-j8rh-479h-cp32, the release notes at https://github.com/axios/axios/releases/tag/v1.20.0, and the fix in PR https://github.com/axios/axios/pull/11141 (commit d19040bda7a8be2f82c3c6e1a5bc03917daee39a). Because Axios alone is not exploitable (the assessed CVSS 3.1 vector requires AC:H plus a separate pollution primitive), the highest-value compensating control is eliminating the root-cause prototype-pollution flaw in the same process: audit and patch dependencies that write to Object.prototype, and reject untrusted keys such as __proto__, constructor, and prototype in any object-merge/parse path, since removing the pollution primitive renders this gadget inert without touching Axios. Where immediate upgrade is not possible, have request interceptors return configurations that always define their own headers property (for example spread {...config, headers: config.headers ?? {}}) or build configs with Object.create(null), both of which prevent fall-through to an inherited prototype value; the trade-off is that null-prototype configs can surprise downstream code expecting normal object methods, and Axios itself may materialize them into filtered snapshots. Running Node.js with --disable-proto=throw (or --disable-proto=delete) blocks Object.prototype.__proto__ assignment and is a low-cost runtime guard, though it does not block direct Object.prototype.x = ... writes and can break libraries that rely on __proto__. Freezing Object.prototype with Object.freeze(Object.prototype) is the strongest mitigation but has a high compatibility risk with legitimate libraries that mutate prototypes. Finally, monitor outbound request headers for unexpected authorization values as a detection control, since successful abuse of this chain manifests as injected credentials or headers on egress traffic.

Affected VersionsENISA

axios 1.0.0, < 1.20.0

Affected Packages

npm axios fix: 1.20.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Axios is a promise-based HTTP client used in both browsers and Node.js, and the affected code path is the dispatchRequest routine that normalizes the final request configuration after the interceptor chain resolves. When a request interceptor returns a brand-new ordinary (Object.prototype-backed) configuration object lacking an own headers property, the normalizer reads headers from the prototype chain; if a co-resident prototype-pollution vulnerability has already written Object.prototype.headers, that attacker-controlled value becomes effective request behavior and is observable by downstream request processing, including authorization header values. The vendor maps this to CWE-74 (improper neutralization of special elements in output), though the practical root-cause class is prototype-chain inheritance of configuration state - an injection of untrusted data through shared prototype state rather than direct input handling. Per the upstream changelog and PR, the 1.20.0 hardening prevents values inherited only from shared prototypes (including another JavaScript realm's Object.prototype, even when its constructor is altered, deleted, or replaced by an accessor) from becoming request behavior after config merging or interceptor replacement, covering methods, headers, adapters, transports, FormData hooks, serializer options, and Fetch Request options. Already-safe writable merged configs retain their identity through dispatch, while frozen, sealed, accessor-based, or unsafe-key-bearing replacements become writable filtered snapshots; interceptor replacements with non-terminal application-defined prototypes remain supported as normalized null-prototype snapshots, and the unsafe materialization keys __proto__, constructor, and prototype are always excluded. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:H/SA:N) and our independent CVSS 3.1 assessment (AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N) agree that confidentiality loss is low while integrity impact on the downstream consumer is high; the difference in AC/AT reflects the mandatory chained pollution prerequisite.

Know when Axios gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:H/SA:N
vuln.today AI 7.5 HIGH

AC:H because exploitation requires a separate proto-pollution primitive plus a specific interceptor pattern; S:C and I:H reflect attacker headers injected into downstream (subsequent) requests, C:L for observable authorization values.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:H/SA:N
SUSE 4.8 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
High
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 28, 2026 - 19:01 EUVD
CVE Published
Sep 28, 2026 - 17:29 cve.org
MEDIUM 6.9

DescriptionCVE.org

Axios is a promise-based HTTP client for the browser and Node.js. From 1.0.0 until 1.20.0, the dispatchRequest function normalizes inherited Object.prototype.headers from a replacement request configuration. A separate same-process prototype-pollution flaw sets Object.prototype.headers, and trusted request interceptors return a new ordinary configuration without an own headers property. After the interceptor chain, dispatchRequest resolves the inherited headers during normalization. Downstream request processing can observe attacker-controlled headers, including authorization-related values. This issue is fixed in version 1.20.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 273 npm packages depend on axios (189 direct, 84 indirect)

Ecosystem-wide dependent count for version 1.0.0.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Ubiquitous
axios is one of the most-downloaded npm HTTP clients, in countless Node/browser apps
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Axios

View all
CVE-2026-42043 CRITICAL POC
10.0 Apr 24

NO_PROXY protection bypass in Axios HTTP client (versions 1.0.0-1.15.0 and ≤0.31.0) lets an attacker who controls a requ

CVE-2026-42044 CRITICAL POC
9.1 Apr 24

JSON response tampering in the Axios HTTP client (versions 1.0.0 up to but not including 1.15.2) lets an attacker who ca

CVE-2026-67320 HIGH POC
8.3 Aug 01

Prototype pollution via the Node.js HTTP adapter in axios allows an attacker who controls `Object.prototype.proxy` to si

CVE-2025-27152 HIGH POC
7.7 Mar 07

axios is a promise based HTTP client for the browser and node.js. Rated high severity (CVSS 7.7), this vulnerability is

CVE-2025-58754 HIGH POC
7.5 Sep 12

Axios is a promise based HTTP client for the browser and Node.js. Rated high severity (CVSS 7.5), this vulnerability is

CVE-2026-25639 HIGH POC
7.5 Feb 09

Axios versions up to 0.30.3 is affected by improper check for unusual or exceptional conditions (CVSS 7.5).

CVE-2024-39338 HIGH POC
7.5 Aug 12

axios 1.7.2 allows SSRF via unexpected behavior where requests for path relative URLs get processed as protocol relative

CVE-2021-3749 HIGH POC
7.5 Aug 31

axios is vulnerable to Inefficient Regular Expression Complexity. Rated high severity (CVSS 7.5), this vulnerability is

CVE-2019-10742 HIGH POC
7.5 May 07

Axios up to and including 0.18.0 allows attackers to cause a denial of service (application crash) by continuing to acce

CVE-2026-42033 HIGH POC
7.4 Apr 24

Prototype pollution in Axios HTTP client versions before 1.15.1 and 0.31.1 enables silent interception and modification

CVE-2026-42039 MEDIUM POC
6.9 Apr 24

Denial of service in Axios HTTP client before versions 1.15.1 and 0.31.1 allows remote unauthenticated attackers to cras

CVE-2026-42041 MEDIUM POC
6.5 Apr 24

Prototype pollution in Axios library versions prior to 1.15.1 and 0.31.1 allows remote attackers to suppress HTTP error

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise Micro 5.3 Not-Affected
SUSE Linux Enterprise Micro 5.4 Not-Affected
SUSE Linux Enterprise Micro 5.5 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy