CVE-2026-67316
This CVE is being scored at 6.3, but that score is misleading. The vulnerability is not a standalone entry point—it is a force multiplier that activates only after Object.prototype has already been polluted by a separate prototype pollution flaw in any transitive dependency. In the npm ecosystem, where a typical application pulls in dozens of indirect dependencies, a polluted prototype chain is closer to normal operational state than an exotic edge case. This transforms the CVE from a direct exploit into a gadget: once that prerequisite exists, attackers gain the ability to inject controlled request bodies into requests that should have none, and to route traffic through attacker-specified proxies. The two exploitation paths have different implications. The high-level API path—triggered through axios.get(), axios.delete(), and similar method aliases—is the more dangerous vector because it reproduces through normal application code. Most developers using axios assume these calls produce bodyless requests; the gadget silently violates that assumption. A partial fix in version 1.15.2 addressed this high-level path, which is why many vulnerability reports treat axios as 'fixed' at that version. The low-level path—triggered when calling exported adapters or helpers directly with plain config objects—was not hardened in 1.15.2. It required the full 1.18.0 patch to address. This means applications with custom HTTP adapters, direct lib imports, or any non-standard integration patterns may still be vulnerable even after upgrading to 1.15.2. Check your actual axios usage: if you're using the standard axios.get() interface, 1.15.2 suffices. If you have custom adapter code or import from lib/adapters or lib/helpers directly, you need 1.18.0+. The deeper takeaway is that CVSS cannot score gadget-class vulnerabilities accurately. It evaluates this as a standalone flaw with a prerequisite, but the real attack surface is the polluted npm dependency graph surrounding every axios deployment. Prototype pollution in any transitive dependency becomes a delivery mechanism for axios-based impacts. This isn't a scoring problem—it is a structural feature of how npm dependency resolution works, and your threat model should treat transitive prototype pollution as a baseline condition rather than a rare prerequisite.
Reviewed through automated stages and approved by a human before publication.