CVE-2026-105483: Node.js TLS certificate hostname bypass when the IP is written fullwidth digits
CVE-2026-105483 is a Node.js TLS hostname-check bypass on the 24.x and 26.x lines. A host written with fullwidth digits, the wide Unicode forms used in East Asian text, was normalized into an IP address in a way that let the certificate check be skipped or matched wrongly. Node.js rates it High; the fix author calls it not easy to exploit. Update to Node.js 24.22.1 or 26.12.1.
Published Oct 21, 2026 · Analysis Oct 21, 2026
What an attacker can do
Unicode has fullwidth versions of the digits 0 to 9 (U+FF10 to U+FF19) and of the full stop. When a host name goes through IDNA processing, these become ordinary ASCII digits, so a string that looks like text can turn into an IPv4 address. A regression in how Node.js 24 and 26 normalized such hosts meant the TLS identity check did not treat the result the way the connection did, and the commit message says plainly that "the hostname check can be bypassed."
To use this, an attacker must control or influence the host string a Node.js client connects to, for example through a user-supplied URL, a webhook target or an agent tool that fetches links, and must be positioned to answer the connection with a certificate that would otherwise be rejected. Public websites reached by ordinary domain names are not the target; the risk sits with clients that connect to addresses taken from input. The fix, titled "tls: fix ip normalization regression," restores consistent normalization so the identity check sees the real address.
Who is affected
Affected: Node.js 24.x before 24.22.1 and 26.x before 26.12.1. The 22.x line is not affected by this advisory. Check which line each service runs:
node -v
npx --yes envinfo --binaries 2>/dev/null | grep -i node
docker run --rm <your-image> node -vCode at risk passes host names from users or external data to https.request(), tls.connect() or fetch().
How to fix it
Upgrade to Node.js 24.22.1 or 26.12.1 and restart the services. Node.js 22 users do not need a fix for this specific bug but should still install 22.23.4 for the other advisories in the same release.
Until you upgrade, parse user-supplied URLs with new URL() and reject hosts that contain non-ASCII digits or that resolve to IP literals, before any connection is made.
How to tell if you were hit
Search inputs and logs for host names that contain fullwidth characters (code points U+FF10 to U+FF19 or the fullwidth full stop U+FF0E), or for IDNA-encoded hosts that decode to digits. A user-supplied URL that looks like text but connects to an IP address is the pattern to look for.
Original advisory
From the National Vulnerability Database. This product uses the NVD API but is not endorsed or certified by the NVD.
A regression in Node.js IP normalization let a host written with fullwidth Unicode digits bypass the TLS certificate hostname check. The fix corrects the IP normalization so the hostname check is applied as intended. Affected: Node.js 24.x before 24.22.1 and 26.x before 26.12.1. Fixed in Node.js 24.22.1 and 26.12.1, released October 21, 2026.
Credited to hasanfleyah.
Questions
- What are fullwidth digits?
They are Unicode characters that look like 0 to 9 but are wider, used in Chinese, Japanese and Korean text. IDNA normalization turns them into normal ASCII digits, which is how a text-looking host can become an IP address.
- Is Node.js 22 affected by CVE-2026-105483?
No. The advisory lists only the 24.x and 26.x lines, because the bug is a regression introduced on those lines. Node.js 22 users should still upgrade to 22.23.4 for the other fixes released the same day.
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-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, 2026CVE-2026-106072
Node.js improper certificate validation for non-canonical IPv4 hostnames allows DNS SANs to authenticate IP endpoints
mediumOct 21, 2026
