Node.js DNS lookups can silently act on the wrong hostname
Node.js can read a hostname only up to a hidden 'end of text' marker, so a name that looks safe can be checked as one site but looked up as another. Apps that rely on that check could connect to the wrong server.
| Severity | HighCVSS 7.4 of 10 |
|---|---|
| Being exploited? | UnclearNo reports either way yet |
| Fix available? | YesFixes were announced by Node.js on October 21, 2026 for the 22.x, 24.x and 26.x release lines; the specific patched version numbers are not stated in the provided material. · since 27 Oct 2026 |
| How sure is this? | Official, 4 sourcesBacked by an official source |
How the attack works simplified
- 1Crafted hostnameName includes a hidden NUL byte
- 2Validation passesCheck sees the full name
- 3dns.resolve truncatesLookup stops at the NUL byte
- 4Wrong records usedApp acts on a different hostname
- ResultApp trusts records for the wrong host
What happened
Node.js dns.resolve*() and dns.reverse() truncate hostnames containing an embedded NUL byte at the first NUL, because the name is passed to c-ares as a C string. This is an incomplete fix of CVE-2026-48930, which only covered dns.lookup() and the net/tls host options.
Are you affected?
You are affected if you run Node.js 22.x, 24.x or 26.x and your application validates a hostname and then resolves it using dns.resolve*() or dns.reverse().
Node.js 22.x, 24.x, 26.x
What to do
- Update Node.js to the fixed release for your line (22.x, 24.x or 26.x) from the October 21, 2026 Node.js security release
- Check whether your code uses dns.resolve*() or dns.reverse() after validating hostnames, and review those code paths
- Reject hostnames containing NUL bytes (\0) in input validation until patched
- Rebuild and redeploy applications that bundle Node.js, including Cisco or Splunk products that embed it, per vendor advisories
Timeline
- 23 Oct 2026, 17:17 UTCPublicly disclosed
- 23 Oct 2026, 17:17 UTCReported by NVD · NVD
- 26 Oct 2026, 17:01 UTCFortinet PSIRT reported on it · Fortinet PSIRT
- 26 Oct 2026, 17:12 UTCGitHub Advisory reported on it · GitHub Advisory
- 27 Oct 2026, 21:32 UTCCisco PSIRT reported on it · Cisco PSIRT
- 27 Oct 2026, 21:32 UTCFix: Fixes released by Node.js in its October 21, 2026 security release for the 22.x, 24.x and 26.x lines (exact patched versions not stated in the provided material).
- 28 Oct 2026, 20:36 UTCReported by Cisco PSIRT · Cisco PSIRT
Sources 5 reports, oldest first
Official vendor, government CERT or advisory database
- NVD23 Oct 2026, 17:17 UTC
- A flaw in Node.js DNS resolution allows hostnames containing a NUL byte to be silently truncated...GitHub Advisory · 23 Oct 2026, 18:31 UTC
- Multiple Node.js CVEsFortinet PSIRT · 26 Oct 2026, 07:00 UTC
- Vulnerabilities in node.js Affecting Cisco Products: October 2026Cisco PSIRT · 27 Oct 2026, 21:30 UTC
- Vulnerabilities in Node.js Affecting Cisco Products: October 2026Cisco PSIRT · 28 Oct 2026, 20:36 UTC
Technical details
- ID
- CVE-2026-105482 · GHSA-4qmx-59c6-fr6r
- CVSS
- 7.4 / 10
- EPSS
- 0.5% chance of exploitation within 30 days
- Disclosed
- 23 Oct 2026, 17:17 UTC
- On Zero Radar
- before the radar started
- Last change
- 28 Oct 2026, 20:43 UTC
The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works