{"id":"UBUNTU-CVE-2026-69198","details":"ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. From 10.1.1 until 10.2.2, every special-use classification method is built on isInSubnet, which short-circuits to false whenever the address's own subnet mask is shorter than the reference range's mask. That mask comes verbatim from the CIDR suffix on the parsed input, so appending a suffix such as /0 suppresses classification entirely: isLoopback(), isPrivate(), isLinkLocal(), isCGNAT(), isMulticast(), isUnspecified(), isBroadcast(), isULA(), and getType() all report an internal address as unremarkable, while correctForm() and address still return the real internal target. An application that builds a network trust-boundary decision on these checks, for example a filter intended to block Server-Side Request Forgery, or SSRF, may therefore treat an internal target as external and allow the request. The underlying bit comparison is correct, and mask(n) already returns the first n bits of the full parsed address independently of subnetMask; the defect is solely that the containment guard sits in the classification path. This issue is fixed in version 10.2.2.","modified":"2026-08-06T00:23:23Z","published":"2026-08-03T20:17:00Z","upstream":["CVE-2026-69198"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-69198"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-69198"},{"type":"REPORT","url":"https://github.com/beaugunderson/ip-address/security/advisories/GHSA-4xrf-jv44-h6hh"},{"type":"REPORT","url":"https://github.com/beaugunderson/ip-address/commit/488fe9bc7c35363b4b090494fc38c266d217740d"},{"type":"REPORT","url":"https://github.com/beaugunderson/ip-address/releases/tag/v10.2.2"}],"affected":[{"package":{"name":"node-ip-address","ecosystem":"Ubuntu:20.04:LTS","purl":"pkg:deb/ubuntu/node-ip-address?arch=source&distro=focal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.3.0-1"],"ecosystem_specific":{"binaries":[{"binary_version":"6.3.0-1","binary_name":"node-ip-address"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-69198.json"}},{"package":{"name":"node-ip-address","ecosystem":"Ubuntu:22.04:LTS","purl":"pkg:deb/ubuntu/node-ip-address?arch=source&distro=jammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.4.0-1","8.1.0-2"],"ecosystem_specific":{"binaries":[{"binary_name":"node-ip-address","binary_version":"8.1.0-2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-69198.json"}},{"package":{"name":"node-ip-address","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/node-ip-address?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["8.1.0-2"],"ecosystem_specific":{"binaries":[{"binary_name":"node-ip-address","binary_version":"8.1.0-2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-69198.json"}},{"package":{"name":"node-ip-address","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/node-ip-address?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["8.1.0-2","8.1.0-3"],"ecosystem_specific":{"binaries":[{"binary_name":"node-ip-address","binary_version":"8.1.0-3"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-69198.json"}}],"schema_version":"1.8.0","severity":[{"type":"CVSS_V4","score":"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"},{"type":"Ubuntu","score":"medium"}]}