Description
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.7.1, the isInSubnet and isHostInSubnet methods in src/common.ts compare masked binary strings without validating that both operands use the same IP family. A cross-family containment check whose leading address bits match makes the masked strings compare equal even though IPv4 and IPv6 do not share an address space. An allowlist or denylist decision can therefore classify an address outside the intended range as contained. This issue is fixed in version 10.7.1.
Published: 2026-09-28
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Allowlist bypass that can admit addresses outside the intended subnet range
Action: Apply patch
AI Analysis

Impact

The ip-address library performs containment checks in its isInSubnet and isHostInSubnet functions by comparing masked binary strings of IP addresses. However, it does not enforce that both operands belong to the same IP family. This flaw means that a cross‑family address comparison can succeed if the leading bits match, causing the function to return true even though the addresses are of different families. An application relying on these functions for allowlist or denylist decisions could therefore be tricked into allowing traffic from addresses that lie outside the intended subnet. The weakness is described by CWE‑1024, CWE‑697 and CWE‑843 and can lead to unauthorized access or privilege escalation in systems that trust the library for network filtering.

Affected Systems

The vulnerability affects the ip-address library from beaugunderson. All applications using versions prior to 10.7.1 are impacted. The fix is included in release 10.7.1.

Risk and Exploitability

The CVSS base score of 6.3 indicates a moderate severity. Because the flawed logic is triggered by user‑supplied addresses, an attacker can construct a malicious IP that will be incorrectly accepted. The flaw aligns with CWE‑1024, as well as the listed CWEs. The EPSS score is 0.0037 (< 1%), indicating a low exploitation probability. No known exploitation in the wild, so the likelihood remains uncertain. The vulnerability is not listed in CISA’s KEV catalog. If the library is used in an allowlist or denylist context, the conditions for exploitation are relatively easy to satisfy by feeding malicious IP strings to the function.

Generated by OpenCVE AI on September 30, 2026 at 04:43 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to ip-address v10.7.1 or later for the official fix
  • In application code that uses the library, add explicit checks to ensure both addresses share the same IP family before calling isInSubnet or isHostInSubnet
  • Review and tighten any allowlist or denylist logic that depends on the library’s containment checks to prevent unintended access

Generated by OpenCVE AI on September 30, 2026 at 04:43 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-j6r3-76f7-8jcv ip-address: isInSubnet() and isHostInSubnet() compare addresses of different families as if they shared an address space, allowing an allowlist check to admit an address outside its range
History

Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1024
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


Mon, 28 Sep 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, 28 Sep 2026 20:15:00 +0000

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

Mon, 28 Sep 2026 18:00: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.7.1, the isInSubnet and isHostInSubnet methods in src/common.ts compare masked binary strings without validating that both operands use the same IP family. A cross-family containment check whose leading address bits match makes the masked strings compare equal even though IPv4 and IPv6 do not share an address space. An allowlist or denylist decision can therefore classify an address outside the intended range as contained. This issue is fixed in version 10.7.1.
Title ip-address: isInSubnet() and isHostInSubnet() compare addresses of different families as if they shared an address space, allowing an allowlist check to admit an address outside its range
Weaknesses CWE-697
CWE-843
References
Metrics cvssV4_0

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


Subscriptions

Beaugunderson Ip-address
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-28T19:13:25.495Z

Reserved: 2026-09-28T15:55:37.907Z

Link: CVE-2026-101912

cve-icon Vulnrichment

Updated: 2026-09-28T19:13:00.619Z

cve-icon NVD

Status : Deferred

Published: 2026-09-28T18:17:21.073

Modified: 2026-09-30T19:57:08.043

Link: CVE-2026-101912

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-28T17:48:06Z

Links: CVE-2026-101912 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T04:45:19Z

Weaknesses
  • CWE-1024

    Comparison of Incompatible Types

  • CWE-697

    Incorrect Comparison

  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')