CVE-2026-106072: Node.js improper certificate validation for non-canonical IPv4 hostnames allows DNS SANs to authenticate IP endpoints
CVE-2026-106072 is a medium-severity Node.js certificate validation flaw. For an IPv4 address written in a non-canonical form, Node.js could check the server certificate's DNS names instead of its IP address entries, so a certificate whose DNS name matched the odd string was accepted for an IP endpoint. It is fixed in Node.js 22.23.4, 24.22.1 and 26.12.1.
Published Oct 21, 2026 · Analysis Oct 21, 2026
What an attacker can do
X.509 certificates list DNS names and IP addresses in separate subject alternative name (SAN) types, and the rules say an IP endpoint must match an IP address entry. Node.js decides which rule to apply by asking whether the host is an IP address. A non-canonical form such as a shortened or hexadecimal IPv4 string did not look like an IP address at that point, so Node.js fell back to matching DNS names, even though the operating system still connected to the numeric address.
An attacker who can hold a certificate with a DNS SAN equal to that odd string, and who can steer a client to connect to it, gets a verified-looking TLS session to an IP endpoint the certificate never covered. Public CAs do not issue such names, so the realistic setting is private PKI, internal CAs, development certificates trusted in a fleet, or mutual TLS between services. The test fixture added with the fix is exactly such a certificate. The same commit fixes a closely related High-severity hostname bypass; both are closed by rejecting hosts that only turn into IP addresses after domainToASCII() normalization.
Who is affected
Affected: Node.js 22.x before 22.23.4, 24.x before 24.22.1 and 26.x before 26.12.1. Exposure needs two things: a TLS client connecting to a host string an attacker can influence, and a trust store that accepts certificates from a CA the attacker can use, such as an internal CA.
node -v
npx --yes envinfo --binaries 2>/dev/null | grep -i node
docker run --rm <your-image> node -vList the custom CA bundles your services load (NODE_EXTRA_CA_CERTS, the ca option) to see where internal PKI is trusted.
How to fix it
Upgrade to Node.js 22.23.4, 24.22.1 or 26.12.1. After the upgrade, numeric hosts in non-canonical form are rejected, so write IP endpoints in canonical form in configuration.
As a hardening step, make sure internal CAs never issue certificates whose DNS names are numeric strings, and limit which services trust each internal CA.
How to tell if you were hit
Audit your internal CA's issued certificates for DNS SANs that are numbers or IP-like strings; any such certificate is suspicious. In client logs, look for TLS connections to hosts written as 0x values, with leading zeros or as shortened IPv4, and check who supplied them.
Original advisory
From the National Vulnerability Database. This product uses the NVD API but is not endorsed or certified by the NVD.
When a Node.js TLS client connected to an IPv4 address written in a non-canonical form, the certificate check could match it against DNS subject alternative names instead of IP address entries, so a certificate with a matching DNS name could authenticate an IP endpoint. The fix rejects hosts that become IP addresses only after normalization. Affected: Node.js 22.x before 22.23.4, 24.x before 24.22.1 and 26.x before 26.12.1. Fixed in Node.js 22.23.4, 24.22.1 and 26.12.1, released October 21, 2026.
Credited to br41ny.
Questions
- What is a SAN in a TLS certificate?
A subject alternative name is an entry listing what a certificate is valid for: DNS names, IP addresses or other identifiers. A client must match a domain against DNS entries and an IP address against IP entries; this bug mixed the two for odd IPv4 forms.
- Does CVE-2026-106072 affect public HTTPS sites?
Not in practice. Public certificate authorities do not issue certificates for numeric DNS names. The realistic risk is internal PKI, development certificates and mutual TLS inside organizations.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
Coverage on the Beam blog
More Node.js vulnerabilities
All Node.js entriesCVE-2026-105481
Node.js keep-alive socket processes a response that was written before the request was sent
mediumOct 21, 2026CVE-2026-105482
Node.js dns.resolve truncates names containing NUL char
highOct 21, 2026CVE-2026-105483
Node.js TLS certificate hostname bypass when the IP is written fullwidth digits
highOct 21, 2026CVE-2026-106069
Node.js TLS certificate hostname bypass when the host loosely resolves to an IP address
highOct 21, 2026CVE-2026-106070
Node.js ZipFile returns attacker-controlled prefix bytes after failed ZIP header validation
lowOct 21, 2026CVE-2026-106071
Node.js Permission Model filesystem over-grant via wildcard radix lookup
lowOct 21, 2026
