Description
A flaw in Node.js TLS hostname verification allows a certificate with only a DNS SAN to authenticate an IP endpoint when the client connects using a non-canonical IPv4 spelling, such as `0177.0.0.1`, `0x7f.0.0.1`, `2130706433` or `127.1`.

`tls.checkServerIdentity()` did not classify these hosts as IP addresses, but normalized them to their canonical form and matched the result against the certificate DNS names. A certificate containing `DNS:127.0.0.1` and no `IP Address:127.0.0.1` SAN was therefore accepted, while the same certificate is correctly rejected for `127.0.0.1`. Exploitation requires a certificate with a numeric DNS SAN issued by a CA trusted by the client, and a platform resolver that accepts these spellings, such as glibc.

This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
Published: 2026-10-23
Score: 6.7 Medium
EPSS: n/a
KEV: No
Impact: Authentication Bypass via TLS Hostname Verification
Action: Immediate Patch
AI Analysis

Impact

Node.js performs TLS hostname verification by normalizing host names before comparing them with the certificate’s subject alternative names (SANs). In this flaw, the function treats non‑canonical IPv4 representations—such as "0177.0.0.1", "0x7f.0.0.1", or "2130706433"—as IP addresses, normalizes them to a canonical form, and then matches that form only against DNS SANs. If a certificate contains a DNS SAN like "127.0.0.1" but no corresponding IP SAN, a TLS connection to an IP endpoint can be authenticated successfully, effectively bypassing certificate validation. This flaw permits an attacker to pretend to be the intended server and perform man‑in‑the‑middle or impersonation attacks, compromising confidentiality and integrity of encrypted traffic.

Affected Systems

The vulnerability affects the Node.js runtime for the 26.x, 24.x, 22.x release lines. The issue resides in the internal TLS implementation of these Node.js versions and can affect any application that relies on Node.js to establish secure outbound connections.

Risk and Exploitability

The CVSS score of 6.7 indicates a moderate severity. The EPSS score is not provided, and the vulnerability is not listed in CISA’s KEV catalog, suggesting it is not a high‑profile or actively exploited vulnerability at this time. Exploitation requires a certificate with a numeric DNS SAN issued by a CA trusted by the client and a DNS resolver that accepts the non‑canonical IPv4 spellings, such as those provided by glibc. Because of these prerequisites, the attack surface is limited, but the impact of successful exploitation—TLS impersonation—can be significant for applications that assume strict hostname validation.

Generated by OpenCVE AI on October 23, 2026 at 17:25 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to the latest Node.js release that contains the TLS hostname verification fix.
  • Ensure that servers present certificates with an IP SAN that matches the expected IP address and avoid relying on DNS SANs for IP endpoints.
  • If immediate upgrade is not possible, add custom code to validate the server’s certificate host name or IP address after the TLS handshake to enforce strict matching requirements.

Generated by OpenCVE AI on October 23, 2026 at 17:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 17:45:00 +0000

Type Values Removed Values Added
Title Non‑Canonical IPv4 Spelling Allows TLS Hostname Verification Bypass in Node.js

Fri, 23 Oct 2026 16:30:00 +0000

Type Values Removed Values Added
Description A flaw in Node.js TLS hostname verification allows a certificate with only a DNS SAN to authenticate an IP endpoint when the client connects using a non-canonical IPv4 spelling, such as `0177.0.0.1`, `0x7f.0.0.1`, `2130706433` or `127.1`. `tls.checkServerIdentity()` did not classify these hosts as IP addresses, but normalized them to their canonical form and matched the result against the certificate DNS names. A certificate containing `DNS:127.0.0.1` and no `IP Address:127.0.0.1` SAN was therefore accepted, while the same certificate is correctly rejected for `127.0.0.1`. Exploitation requires a certificate with a numeric DNS SAN issued by a CA trusted by the client, and a platform resolver that accepts these spellings, such as glibc. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
Weaknesses CWE-295
References
Metrics cvssV3_0

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: hackerone

Published:

Updated: 2026-10-23T16:15:05.783Z

Reserved: 2026-10-06T15:00:00.655Z

Link: CVE-2026-106072

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-23T17:17:20.203

Modified: 2026-10-23T19:42:24.553

Link: CVE-2026-106072

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T17:30:17Z

Weaknesses
  • CWE-295

    Improper Certificate Validation