Description
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.3.1, Address4 accepts an octet written with a leading zero and decodes it as decimal, while the WHATWG URL host parser, inet_aton, and getaddrinfo all decode a leading zero as octal. The library and the network stack therefore disagree about which host a string names. new Address4('012.0.0.1') reports correctForm() of 12.0.0.1 and isPrivate() of false, but fetch('http://012.0.0.1/') connects to 10.0.0.1. 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, will classify an internal target as external and allow the request. The defect is in the parse gate rather than in any one classifier, so every consumer of Address4 inherits it: isPrivate(), isLoopback(), isLinkLocal(), isCGNAT(), isInSubnet(), isHostInSubnet(), and correctForm() are all computed from the mis-decoded octets. This issue is fixed in version 10.3.1.
Published: 2026-08-03
Score: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

ip-address is a JavaScript library for parsing and manipulating IP addresses. Prior to version 10.3.1 the Address4 constructor decodes an octet that begins with a leading zero as decimal, whereas the WHATWG URL host parser and underlying network functions interpret a leading zero octet as octal. This discrepancy causes the library to report an address such as "012.0.0.1" as 12.0.0.1, but the network stack resolves the same string to 10.0.0.1. A defender who relies on the library’s isPrivate(), isLoopback(), or isInSubnet() methods to determine whether a URL refers to an internal host will therefore misclassify internal targets as external, allowing an attacker to perform Server‑Side Request Forgery or bypass trust‑boundary attacks.

Affected Systems

All applications that depend on beaugunderson:ip-address prior to version 10.3.1 are affected. The vulnerability exists when the library’s Address4 class parses any IPv4 string containing a leading‑zero octet. Version 10.3.1 and later contain the fix, so any consumer of the library that has not upgraded is vulnerable.

Risk and Exploitability

The CVSS score of 7.7 indicates high severity, and although the EPSS score of 0.00292 (≈0.3 %) denotes a very low probability of exploitation, the vulnerability is not listed in CISA’s KEV catalog. Exploitation requires an attacker to supply a carefully crafted IPv4 address containing a leading‑zero octet (for example 012.0.0.1). Address4 parses this as 12.0.0.1 and reports it as non‑private, but the underlying network stack interprets the same string as 10.0.0.1 and connects to a private host. Consequently, any application that relies on Address4’s classification methods for SSRF filtering or trust‑boundary enforcement may mistakenly allow requests to internal targets. The attack vector is inferred to be remote through an exposed input that feeds the library.

Generated by OpenCVE AI on August 6, 2026 at 01:51 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the ip-address library to version 10.3.1 or later
  • If an upgrade is not immediately feasible, sanitize all incoming IP strings by removing leading zero octets before passing them to Address4 to mitigate CWE-1389, or use a standard URL parser that correctly interprets leading zeros as octal
  • Audit the codebase for any usage of Address4’s isPrivate, isLoopback, isInSubnet, isHostInSubnet, isCGNAT or correctForm methods and replace them with trusted, up‑to‑date IP‑validation logic that mitigates CWE-1389 and its related weaknesses

Generated by OpenCVE AI on August 6, 2026 at 01:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-mwp4-54f8-5fhr ip-address: Address4 decodes leading-zero octets as decimal while resolvers decode them as octal, allowing SSRF and trust-boundary bypass
History

Thu, 06 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
First Time appeared Redhat
Redhat hummingbird
Weaknesses CWE-1389
CPEs cpe:/a:redhat:hummingbird:1
Vendors & Products Redhat
Redhat hummingbird
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Important


Tue, 04 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Mon, 03 Aug 2026 21:45:00 +0000

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

Mon, 03 Aug 2026 20:15:00 +0000

Type Values Removed Values Added
Description ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.3.1, Address4 accepts an octet written with a leading zero and decodes it as decimal, while the WHATWG URL host parser, inet_aton, and getaddrinfo all decode a leading zero as octal. The library and the network stack therefore disagree about which host a string names. new Address4('012.0.0.1') reports correctForm() of 12.0.0.1 and isPrivate() of false, but fetch('http://012.0.0.1/') connects to 10.0.0.1. 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, will classify an internal target as external and allow the request. The defect is in the parse gate rather than in any one classifier, so every consumer of Address4 inherits it: isPrivate(), isLoopback(), isLinkLocal(), isCGNAT(), isInSubnet(), isHostInSubnet(), and correctForm() are all computed from the mis-decoded octets. This issue is fixed in version 10.3.1.
Title ip-address: Address4 decodes leading-zero octets as decimal while resolvers decode them as octal, allowing SSRF and trust-boundary bypass
Weaknesses CWE-20
CWE-918
References
Metrics cvssV4_0

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


Subscriptions

Beaugunderson Ip-address
Redhat Hummingbird
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-04T13:59:43.294Z

Reserved: 2026-08-03T16:00:23.483Z

Link: CVE-2026-69192

cve-icon Vulnrichment

Updated: 2026-08-04T13:59:32.136Z

cve-icon NVD

Status : Received

Published: 2026-08-03T20:17:29.960

Modified: 2026-08-04T15:16:41.660

Link: CVE-2026-69192

cve-icon Redhat

Severity : Important

Publid Date: 2026-08-03T19:56:13Z

Links: CVE-2026-69192 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-06T02:00:05Z

Weaknesses
  • CWE-1389

    Incorrect Parsing of Numbers with Different Radices

  • CWE-20

    Improper Input Validation

  • CWE-918

    Server-Side Request Forgery (SSRF)