{"id":"CVE-2026-106072","state":"PUBLISHED","title":"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, su","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`.\n\n`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.\n\nThis vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.","publishedAt":"2026-10-23T16:15:05.783Z","updatedAt":"2026-10-23T16:15:05.783Z","severity":{"score":6.7,"label":"Medium","version":"3.0","vector":"CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:L","source":"hackerone"},"assigner":"hackerone","products":["nodejs node"],"affected":[{"vendor":"nodejs","product":"node","defaultStatus":"unaffected","versions":[{"version":"22.23.3","status":"affected","lessThanOrEqual":"22.23.3","versionType":"semver"},{"version":"24.22.0","status":"affected","lessThanOrEqual":"24.22.0","versionType":"semver"},{"version":"26.12.0","status":"affected","lessThanOrEqual":"26.12.0","versionType":"semver"}]}],"references":["https://nodejs.org/en/blog/vulnerability/october-2026-security-releases"],"weaknesses":["CWE-295"],"ingestedAt":"2026-10-29T20:10:23.711Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/106xxx/CVE-2026-106072.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-106072","state":"PUBLISHED","datePublished":"2026-10-23T16:15:05.783Z","dateUpdated":"2026-10-23T16:15:05.783Z","assignerShortName":"hackerone","assignerOrgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateReserved":"2026-10-06T15:00:00.655Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"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`.\n\n`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.\n\nThis vulnerability affects Node.js **26.x**, **24.x**, and **22.x**."}],"affected":[{"vendor":"nodejs","product":"node","defaultStatus":"unaffected","versions":[{"version":"22.23.3","status":"affected","lessThanOrEqual":"22.23.3","versionType":"semver"},{"version":"24.22.0","status":"affected","lessThanOrEqual":"24.22.0","versionType":"semver"},{"version":"26.12.0","status":"affected","lessThanOrEqual":"26.12.0","versionType":"semver"}]}],"references":[{"url":"https://nodejs.org/en/blog/vulnerability/october-2026-security-releases"}],"metrics":[{"cvssV3_0":{"version":"3.0","vectorString":"CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:L","baseScore":6.7,"baseSeverity":"MEDIUM"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-295","type":"CWE","lang":"en","description":"CWE-295 Improper Certificate Validation"}]}],"providerMetadata":{"shortName":"hackerone","orgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateUpdated":"2026-10-23T16:15:05.783Z"}}}}}