# CVE-2026-54272: ip-address: Misclassification of IPv4-mapped/NAT64 IPv6 addresses can bypass SSRF and trust-boundary checks

> Attackers can bypass SSRF protections by using IPv4-mapped or NAT64 IPv6 addresses that are misclassified as global unicast in the ip-address library.

- **Severity:** Medium 6.9 (`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`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 27 Jul 2026
- **Updated:** 27 Jul 2026
- **Also known as:** CLEANSTART-2026-HB04521, CLSA-2026-1792486210, DEBIAN-CVE-2026-54272, ECHO-0a7a-b116-fb6d, GHSA-22jq-vg5j-6vgg, MINI-3642-g93c-2vff, MINI-3h2f-qfc6-35hq, MINI-4g9w-8q8v-v8px, MINI-4prf-9qm3-6pmw, MINI-4wrr-7fw9-g7j6, MINI-5837-h4h6-mfv9, MINI-5fgw-prq2-rqqq, MINI-6crm-frhr-27v5, MINI-7344-mfgm-v2v3, MINI-cww4-pcqx-r67j, MINI-fv6x-7258-8q3p, MINI-h5r7-pwfh-h44p, MINI-h853-xwmg-cx56, MINI-hq4v-jv59-66rw, MINI-j3hc-pp65-86g7, MINI-m7v9-52rv-95v8, MINI-ppj6-9399-whvc, MINI-qj8x-97mv-73gc, MINI-rmp6-8pmh-8fcg, MINI-vf6c-wgjp-ghfh, MINI-wv93-2fh4-r75c, UBUNTU-CVE-2026-54272, openSUSE-SU-2026:11611-1, openSUSE-SU-2026:12134-1

## What is CVE-2026-54272?

CVE-2026-54272 is a medium-severity server-side request forgery vulnerability in beaugunderson ip-address, published on 27 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official 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.

Weakness: CWE-918 (Server-Side Request Forgery), CWE-20 (Improper Input Validation)

## Which versions are affected by CVE-2026-54272?

2 open source packages ship an affected version, including ip-address.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `ip-address` | npm | From 10.1.1 | 10.2.1 |
| `ip-address` | npm | From 10.1.1 | 10.2.1 |
| `nodejs24` | openSUSE:Tumbleweed | All versions | 24.21.0-1.1 |
| `nodejs26` | openSUSE:Tumbleweed | All versions | 26.7.0-1.1 |

## How do I fix CVE-2026-54272?

Upgrade ip-address to 10.2.1 or later.

## Is CVE-2026-54272 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54272 exists.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-54272 and fix it if it is affected.

What it is: CVE-2026-54272 is a medium-severity server-side request forgery vulnerability in beaugunderson ip-address, published on 27 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54272 exists.

Affected packages and fixed versions:
- ip-address (npm): affected from 10.1.1; fixed in 10.2.1
- ip-address (npm): affected from 10.1.1; fixed in 10.2.1

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-54272/ (Markdown: https://insights.sbomify.com/CVE-2026-54272/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-54272
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-54272
- OSV: https://osv.dev/vulnerability/CVE-2026-54272

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-54272/
Summaries are generated and may contain mistakes; the official description above is the record.
