
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-101911 is a Denial of Service vulnerability in the ip-address JavaScript library (npm package by beaugunderson) caused by unbounded string parsing in the Address6 constructor and Address6.isValid() method. All versions up to and including 10.7.0 are affected; the issue is fixed in version 10.7.1. The vulnerability was published on September 28, 2026, with the GitHub Security Advisory (GHSA-h3mg-xc3c-68pw) published September 29, 2026. It carries a CVSS v3.1 base score of 5.3 (Medium) and a CVSS v4.0 base score of 6.3 (Medium) (GitHub Advisory, Red Hat).
The root cause is uncontrolled resource consumption (CWE-400) and allocation of resources without limits or throttling (CWE-770) in src/ipv6.ts. When parse() encounters characters outside the valid IPv6 character set [0-9a-f:/%] (matched by RE_BAD_CHARACTERS), it builds an error diagnostic by wrapping each offending character in a 34-byte HTML <span class="parse-error"> tag via String.replace(), causing the output string to grow to approximately 34× the input size. No length check is performed before this operation, so Address6.isValid() — which calls the constructor and discards the result — pays the full parsing cost even when only checking validity. The attack requires no authentication and is reachable over the network wherever an application accepts user-supplied strings and passes them to Address6 parsing functions without a prior length bound (GitHub Advisory, Red Hat Bugzilla).
Exploitation causes availability impact only — there is no confidentiality or integrity impact. A 1 MiB payload of invalid characters causes approximately 73 ms of synchronous event-loop stall and 112 MB of transient heap allocation; 8 MiB causes ~464 ms stall and ~784 MB heap usage; 16 MiB throws an uncaught RangeError: Invalid string length (which bypasses instanceof AddressError guards); and 32 MiB triggers a fatal V8 abort (Fatal JavaScript invalid size error) that terminates the Node.js process entirely and cannot be caught by any try/catch. Because the parse is synchronous, the event loop is fully blocked for the duration, denying service to all other requests on the same process (GitHub Advisory).
A JavaScript proof-of-concept is publicly available in the GitHub Security Advisory, demonstrating the DoS by calling Address6.isValid() and new Address6() with crafted megabyte-scale inputs. The EPSS score is approximately 0.003 (0.3%), indicating low probability of widespread exploitation. There is no evidence of in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA KEV catalog. Exploitation is constrained in practice by common HTTP body-parser defaults (typically 100 KB–1 MB), which limit the stall to under 100 ms per request; the process-terminating 32 MiB payload requires an application that explicitly accepts very large request bodies (GitHub Advisory, Red Hat).
ip-address <= 10.7.0 and exposes an endpoint that accepts user-supplied strings passed to Address6.isValid() or new Address6() without a prior length check — for example, an IP address validation endpoint in an API.'!'.repeat(mib * 1024 * 1024)). These characters are all matched by RE_BAD_CHARACTERS and trigger the diagnostic expansion path.Address6.isValid(input) or new Address6(input), which invokes parse() in src/ipv6.ts. The String.replace() call expands each invalid character into a 34-byte span, allocating up to 34× the input size in memory and blocking the event loop synchronously.RangeError that may bypass error handlers; (c) ≥32 MiB: fatal V8 abort terminating the Node.js process (GitHub Advisory).RangeError: Invalid string length exceptions originating from ip-address library code paths; fatal error messages such as Fatal JavaScript invalid size error 142606336 in process output or crash logs.Upgrade the ip-address npm package to version 10.7.1, which rejects any address string longer than 45 characters (IPv6) or 15 characters (IPv4) before parse() runs, making the fix a constant-time length comparison (GitHub Release, Patch Commit). If an immediate upgrade is not possible, add an explicit length guard before any call to Address6 parsing functions: if (host.length > 64) throw new Error('not an IP address');. Additionally, ensure HTTP body-parser limits are set to conservative defaults (100 KB or less for fields containing IP addresses) to constrain the maximum stall to well under 100 ms per request (GitHub Advisory).
Fix availability across major Linux distributions and their releases.
bookworm
node-ip-address
sid
node-ip-address: 10.7.2-1
trixie
node-ip-address
devel
node-ip-address
focal (esm-apps)
node-ip-address
jammy
node-ip-address
jammy (esm-apps)
node-ip-address
noble
node-ip-address
noble (esm-apps)
node-ip-address
resolute
node-ip-address
resolute (esm-apps)
node-ip-address
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."