Description
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Versions 10.1.1 through 10.2.0 are vulnerable to SSRF through misclassification of IPv4-mapped/NAT64 IPv6 addresses. Address6.getType() classifies an address by matching it against a table of known IPv6 special-use prefixes, returning Global unicast when nothing matches. That table had no entry for the IPv4-mapped range (::ffff:0:0/96), so every mapped address fell through to Global unicast; NAT64 addresses matched their own NAT64 … labels. The boolean checks isLoopback, isUnspecified, and isMulticast compared getType() against a fixed label and so returned false, while isLinkLocal and isULA checked only the native IPv6 ranges. The library already exposed isMapped4() and to4(), but did not apply them inside these checks, so a mapped or NAT64 address was never normalized to its embedded IPv4 address before classification. For IPv4-mapped addresses the host OS routes to the IPv4 stack, so the misclassification is reachable on any dual-stack host. For NAT64, the classification bypass is unconditional but end-to-end reachability additionally requires a NAT64/DNS64 gateway in the deployment network.This issue has been fixed in version 10.2.1.
Published: 2026-07-27
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The ip-address library misclassifies IPv4‑mapped and NAT64 IPv6 addresses as global unicast or NAT64 unnormalized, which causes isLoopback, isUnspecified, isMulticast, isLinkLocal, and isULA checks to fail. Because the library exposes isMapped4() and to4() but does not employ them in these checks, a mapped or NAT64 address can reach internal services through the host OS’s IPv4 stack, enabling an attacker to force the application to send requests to arbitrary internal endpoints. This vulnerability maps to CWE‑20 (Improper Input Validation) and CWE‑918 (Server‑Side Request Forgery) and carries a CVSS score of 6.9, indicating a moderate severity once exploited.

Affected Systems

The affected product is the JavaScript library beaugunderson:ip-address. Versions 10.1.1 through 10.2.0 are vulnerable. All dual‑stack hosts that use these versions and rely on the library for address classification or validation are at risk, as the misclassification can bypass trust‑boundary checks and cause SSRF exposures.

Risk and Exploitability

The CVSS score of 6.9 suggests moderate impact. The EPSS score of < 1% indicates a very low exploitation probability, though the flaw remains a classic SSRF bypass, making it attractive for attackers when the library is used in server‑side code. The vulnerability is not listed in CISA KEV, but the lack of a mitigation update until 10.2.1 implies that deployments using the vulnerable versions remain exposed until patched. An attacker likely needs to supply a crafted IPv4‑mapped or NAT64 address to a component that processes addresses via this library, which is realistic in many web or microservice backends that rely on ip-address for IP handling. Given the vulnerability’s nature, exploitation can allow internal network enumeration and access to restricted services if the application accepts user‑supplied URLs or addresses.

Generated by OpenCVE AI on August 3, 2026 at 17:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to version 10.2.1 or later where the classification logic has been corrected.
  • Implement additional address validation that explicitly normalizes IPv4‑mapped or NAT64 addresses using to4() or isMapped4() before performing any trust or boundary checks.
  • Configure network segmentation or firewall rules to block unexpected internal requests that could be triggered by SSRF, adding an extra layer of protection while the library is considered a risk.

Generated by OpenCVE AI on August 3, 2026 at 17:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-22jq-vg5j-6vgg ip-address: misclassification of IPv4-mapped/NAT64 IPv6 addresses can bypass SSRF and trust-boundary checks
History

Wed, 29 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N'}

threat_severity

Moderate


Mon, 27 Jul 2026 23:30:00 +0000

Type Values Removed Values Added
First Time appeared Beaugunderson
Beaugunderson ip-address
Vendors & Products Beaugunderson
Beaugunderson ip-address

Mon, 27 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 27 Jul 2026 17:45:00 +0000

Type Values Removed Values Added
Description ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Versions 10.1.1 through 10.2.0 are vulnerable to SSRF through misclassification of IPv4-mapped/NAT64 IPv6 addresses. Address6.getType() classifies an address by matching it against a table of known IPv6 special-use prefixes, returning Global unicast when nothing matches. That table had no entry for the IPv4-mapped range (::ffff:0:0/96), so every mapped address fell through to Global unicast; NAT64 addresses matched their own NAT64 … labels. The boolean checks isLoopback, isUnspecified, and isMulticast compared getType() against a fixed label and so returned false, while isLinkLocal and isULA checked only the native IPv6 ranges. The library already exposed isMapped4() and to4(), but did not apply them inside these checks, so a mapped or NAT64 address was never normalized to its embedded IPv4 address before classification. For IPv4-mapped addresses the host OS routes to the IPv4 stack, so the misclassification is reachable on any dual-stack host. For NAT64, the classification bypass is unconditional but end-to-end reachability additionally requires a NAT64/DNS64 gateway in the deployment network.This issue has been fixed in version 10.2.1.
Title ip-address: Misclassification of IPv4-mapped/NAT64 IPv6 addresses can bypass SSRF and trust-boundary checks
Weaknesses CWE-20
CWE-918
References
Metrics cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:H/SI:N/SA:N'}


Subscriptions

Beaugunderson Ip-address
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-27T17:42:10.446Z

Reserved: 2026-06-12T17:13:32.280Z

Link: CVE-2026-54272

cve-icon Vulnrichment

Updated: 2026-07-27T17:42:03.817Z

cve-icon NVD

Status : Received

Published: 2026-07-27T18:16:56.410

Modified: 2026-07-27T18:16:56.410

Link: CVE-2026-54272

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-27T17:13:09Z

Links: CVE-2026-54272 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T17:15:12Z

Weaknesses
  • CWE-20

    Improper Input Validation

  • CWE-918

    Server-Side Request Forgery (SSRF)