Executive brief
Axios, a widely used tool for making web requests in JavaScript applications, contains a vulnerability that can allow attackers to bypass security checks. By exploiting a flaw in how the library handles internal settings, an attacker can force the application to treat failed login attempts or server errors as successful actions. This could lead to unauthorized access to sensitive data or cause the application to process incorrect information as if it were valid.
Technical details
Axios is vulnerable to a Prototype Pollution 'Gadget' attack within the `mergeDirectKeys` strategy used for the `validateStatus` configuration property. The root cause is the use of the JavaScript `in` operator, which traverses the prototype chain during configuration merging. If an attacker can pollute `Object.prototype.validateStatus` (e.g., via a separate vulnerability in another library), Axios will inherit this polluted property. This allows an attacker to force `validateStatus` to always return `true`, causing Axios to resolve all HTTP responses (including 401 Unauthorized, 403 Forbidden, and 500 Internal Server Error) as successful promises, effectively bypassing application-level security controls. The issue is fixed in versions 1.15.1 and 0.31.1 by replacing the `in` operator with `hasOwnProperty`.
Affected products
- axios axios <= 1.15.0, <= 0.31.0
Timeline
- 2026-04-15: disclosed: Vulnerability discovered and PoC developed
- 2026-04-24: advisory: GitHub Advisory published
- 2026-04-24: patched: Fixed in versions 1.15.1 and 0.31.1
References
- https://github.com/axios/axios/security/advisories/GHSA-w9j2-pvgh-6h63
- https://access.redhat.com/errata/RHSA-2026:14937
- https://access.redhat.com/errata/RHSA-2026:16476
- https://access.redhat.com/errata/RHSA-2026:16532
- https://access.redhat.com/errata/RHSA-2026:16534
- https://access.redhat.com/errata/RHSA-2026:16535
- https://access.redhat.com/errata/RHSA-2026:16542