CVE-2026-101910 · GHSA-2vr4-cq9g-pvrc
ip-address: no classifier recognizes the NAT64 local-use range 64:ff9b:1::/48, allowing SSRF and trust-boundary bypass
- Risk score
- 58/100
- CVSS
- 6.9 v4.0
- Exploit chance (30 days)
- 0.4%
- Published
- 28 Sep 2026
Open in the live forecast Today's forecast
What to know
- What it is
- ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. From 10.2.0 until 10.5.1, the Address6 isPrivate classifier in src/ipv6.ts does not recognize the NAT64 local-use range 64:ff9b:1::/48. Applications that combine isPrivate, isLoopback, and isLinkLocal for a trust-boundary decis…
- Affected
- ip-address (npm) >= 10.2.0, <= 10.5.0
- Fix
- Upgrade ip-address to 10.5.1 or later.
- Exploitation
- Public proof of concept
Story map
At a glance
ip-address: Yellow, plan it in. ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. From 10.2.0 until 10.5.1, the Address6 isPrivate classifier in src/ipv6.ts does not recognize the NAT64 local-use range 64:ff9b:1::/48. Applications that combine isPrivate, isLoopback, and isLinkLocal for a trust-boundary decis…
The flaws
- CVE-2026-101910: No classifier recognizes the NAT64 local-use range 64:ff9b:1::/48, allowing SSRF and trust-boundary bypass (CVSS 6.9 · EPSS 0%)
- CVE-2026-101913: Address6.isLinkLocal() recognizes fe80::/64 rather than fe80::/10, allowing SSRF and trust-boundary bypass to on-link hosts (CVSS 6.3 · EPSS 0%)
- CVE-2026-101912: IsInSubnet() and isHostInSubnet() compare addresses of different families as if they shared an address space, allowing an allowlist check to admit an address outside its range (CVSS 6.3 · EPSS 0%)
- CVE-2026-101911: Address6 builds a parse diagnostic proportional to the input with no length bound, allowing a single long string to stall or crash the process (CVSS 6.3 · EPSS 0%)
The fix
Upgrade ip-address: 10.5.1 · 10.7.1 or later on your release line
Who is exposed: ip-address (npm) >= 10.2.0, <= 10.5.0
Where it stands
- Public proof of concept
Connects to
- Same weakness: Server-side request forgery (CWE-918). 220 other warnings in 30 days
Why it is Yellow
- CVSS 6.9 medium
- Public exploit or proof of concept referenced
- On your watchlist: npm
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| ip-address | npm | >= 10.2.0, <= 10.5.0 | 10.5.1 |
References
- https://github.com/advisories/GHSA-2vr4-cq9g-pvrc
- https://github.com/beaugunderson/ip-address/security/advisories/GHSA-2vr4-cq9g-pvrc
- https://nvd.nist.gov/vuln/detail/CVE-2026-101910
- https://github.com/beaugunderson/ip-address/commit/ab3dc88bcf5374344168a2ba075ca7ac4ff257f8
- https://github.com/beaugunderson/ip-address/releases/tag/v10.5.1
- https://github.com/advisories/GHSA-2vr4-cq9g-pvrc
Original description
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. From 10.2.0 until 10.5.1, the Address6 isPrivate classifier in src/ipv6.ts does not recognize the NAT64 local-use range 64:ff9b:1::/48. Applications that combine isPrivate, isLoopback, and isLinkLocal for a trust-boundary decision can treat an internal IPv4 destination encoded through that range as external. Exploitation depends on a server network using an operator-selected NAT64 prefix within the local-use range. A successful bypass can cross the intended network trust boundary. This issue is fixed in version 10.5.1.
Last activity 28 Sep 2026. Patch Forecast updates every hour.