CVE-2026-42044: Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in `parseReviver`
The Axios library is vulnerable to a Prototype Pollution “Gadget” attack that allows any Object.prototype pollution in the application’s dependency tree to be escalated into surgical, invisible modification of all JSON API responses — including privilege escalation, balance manipulation, and authorization bypass.
The default transformResponse function at lib/defaults/index.js:124 calls JSON.parse(data, this.parseReviver), where this is the merged config object. Because parseReviver is not present in Axios defaults, not validated by assertOptions, and not subject to any constraints, a polluted Object.prototype.parseReviver function is called for every key-value pair in every JSON response, allowing the attacker to selectively modify individual values while leaving the rest of the response intact.
This is strictly more powerful than the transformResponse gadget because:
- No constraints — the reviver can return any value (no “must return true” requirement)
- Selective modification — individual JSON keys can be changed while others remain untouched
- Invisible — the response structure and most values look completely normal
- Simultaneous exfiltration — the reviver sees the original values before modification
Severity: Critical (CVSS 9.1)
Affected Versions: All versions (v0.x - v1.x including v1.15.0)
Vulnerable Component: lib/defaults/index.js:124 (JSON.parse with prototype-inherited reviver)
References
Code Behaviors & Features
Detect and mitigate CVE-2026-42044 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →