GitHub Advisoryadvisory · npm
GHSA-pjwm-pj3p-43mv axios's shouldBypassProxy does not recognize IPv4-mapped IPv6 addresses, allowing NO_PROXY bypass (incomplete fix for CVE-2025-62718)
HIGH
Official page ↗
- Aliases
- CVE-2026-44492
- Ecosystem
- npm
- Packages
- axios
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
- Weaknesses
- CWE-289, CWE-918
- Reviewed
- 2026-05-29
Affected packages
• npm axios: >= 1.15.0, < 1.16.0 → fixed in 1.16.0
• npm axios: < 0.32.0 → fixed in 0.32.0
Description
Summary
shouldBypassProxy, introduced in v1.15.0 to fix CVE-2025-62718, does not normalise IPv4-mapped IPv6 addresses. When NO_PROXY lists an IPv4 address such as `127.0.0.1` or `169.254.169.254`, a request URL using the IPv4-mapped IPv6 form (`::ffff:7f00:1`, `::ffff:a9fe:a9fe`) still routes through the configured proxy. Node.js resolves these addresses to the underlying IPv4 host, so the request reaches the internal service via the proxy rather than being blocked.
Details
lib/helpers/shouldBypassProxy.js (v1.15.0):
```javascript
const LOOPBACK_ADDRESSES = new Set(['localhost', '127.0.0.1', '::1']);
const isLoopback = (host) => LOOPBACK_ADDRESSES.has(host);
// normalizeNoProxyHost strips brackets and trailing dots, but not ::ffff: prefix
return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost));
```
The WHATWG URL parser canonicalises `http://[::ffff:127.0.0.1]/` to hostname `[::ffff:7f00:1]`. After bracket-stripping: `::ffff:7f00:1`. This string does not match 127.0.0.1 in NO_PROXY and is not in LOOPBACK_ADDRESSES, so shouldBypassProxy returns false and the proxy is used. proxy-from-env (called before shouldBypassProxy) has the same gap - it does not equate ::ffff:7f00:1 with 127.0.0.1 - so neither layer catches the bypass.
PoC
```javascript
// NO_PROXY=127.0.0.1,localhost,::1 HTTP_PROXY=http://attacker:8080
import shouldBypassProxy from 'axios/lib/helpers/shouldBypassProxy.js';
// All three should return true (bypass proxy). Only the first two do.
console.log(shouldBypassProxy('http://127.0.0.1/')); // true [OK]
console.log(shouldBypassProxy('http://[::1]/')); // true [OK]
console.log(shouldBypassProxy('http://[::ffff:127.0.0.1]/')); // false > 8}.${hi & 0xff}.${lo >> 8}.${lo & 0xff}`;
}
const normalizeNoProxyHost = (hostname) => {
if (!hostname) return hostname;
if (hostname[0] === '[' && hostname.at(-1) === ']')
hostname = hostname.slice(1, -1);
hostname = hostname.replace(/\.+$/, '').toLowerCase();
…
Related
Alias · CVE (1)
- CVE-2026-44492 Axios is a promise based HTTP client for the browser and Node.js. vulnerability
References
- https://github.com/axios/axios/security/advisories/GHSA-pjwm-pj3p-43mv web
- https://nvd.nist.gov/vuln/detail/CVE-2026-44492 advisory
- https://nvd.nist.gov/vuln/detail/CVE-2025-62718 advisory
- https://access.redhat.com/errata/RHSA-2026:36611 web
- https://access.redhat.com/errata/RHSA-2026:36754 web
- https://access.redhat.com/errata/RHSA-2026:36820 web
- https://access.redhat.com/errata/RHSA-2026:36882 web
- https://access.redhat.com/errata/RHSA-2026:36883 web
- https://access.redhat.com/errata/RHSA-2026:40119 web
- https://access.redhat.com/errata/RHSA-2026:40138 web
- https://access.redhat.com/errata/RHSA-2026:40262 web
- https://access.redhat.com/errata/RHSA-2026:41031 web
- https://access.redhat.com/errata/RHSA-2026:41055 web
- https://access.redhat.com/errata/RHSA-2026:41064 web
- https://access.redhat.com/errata/RHSA-2026:41066 web
- https://access.redhat.com/security/cve/CVE-2026-44492 web
- https://bugzilla.redhat.com/show_bug.cgi?id=2487938 web
- https://github.com/axios/axios package
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-44492.json web
- https://access.redhat.com/errata/RHSA-2026:20889 web
- https://access.redhat.com/errata/RHSA-2026:20938 web
- https://access.redhat.com/errata/RHSA-2026:26234 web
- https://access.redhat.com/errata/RHSA-2026:27044 web
- https://access.redhat.com/errata/RHSA-2026:27063 web
- https://access.redhat.com/errata/RHSA-2026:28964 web
- https://access.redhat.com/errata/RHSA-2026:29082 web
- https://access.redhat.com/errata/RHSA-2026:29197 web
- https://access.redhat.com/errata/RHSA-2026:30650 web
- https://access.redhat.com/errata/RHSA-2026:30651 web
- https://access.redhat.com/errata/RHSA-2026:33005 web
- https://access.redhat.com/errata/RHSA-2026:33155 web
- https://access.redhat.com/errata/RHSA-2026:33160 web
- https://access.redhat.com/errata/RHSA-2026:33163 web
- https://access.redhat.com/errata/RHSA-2026:33173 web
- https://access.redhat.com/errata/RHSA-2026:33183 web
- https://access.redhat.com/errata/RHSA-2026:33574 web
- https://access.redhat.com/errata/RHSA-2026:34766 web
- https://access.redhat.com/errata/RHSA-2026:36108 web