CVE-2026-105482
High · 7.4CVSS
7.4
EPSS
0.5%
Published
Oct 23, 2026
CISA due date
—
Cloudanix analysis
A bug in Node.js lets attackers slip in a hidden character that tricks programs into looking up the wrong website even after checking that the address is allowed.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Node.js dns.resolve*() and dns.reverse() functions silently truncate hostnames at embedded NUL bytes before passing them to c-ares, allowing an attacker-controlled prefix to be resolved instead of the validated name.
Why it matters to the business
Applications performing hostname allowlist checks before DNS resolution may connect to attacker-controlled endpoints, risking data disclosure or unauthorized access; urgency is moderate given four-day-old disclosure and low exploitation probability.
How an attack unfolds
An attacker supplies a crafted hostname such as attacker.example\0.trusted.example to an application that validates the full string against a domain list and then calls dns.resolve*(); the NUL causes resolution of only the attacker domain, returning its records without error.
How to fix it
Upgrade affected Node.js 22.x, 24.x, and 26.x installations to the latest patched releases as soon as they become available; sanitize or reject hostnames containing NUL bytes before DNS calls; prefer dns.lookup() where possible until full remediation.
How to confirm the fix worked
Inventory running Node.js versions across environments; test dns.resolve*() and dns.reverse() with a hostname containing a literal NUL byte to confirm truncation behavior is eliminated after upgrade.
Typical attack path
- Attacker supplies hostname containing embedded NUL byte to application input path
- Application performs domain validation or allowlist check on the full string
- Application invokes dns.resolve*() or dns.reverse() on the input
- c-ares truncation causes lookup of attacker-controlled prefix only
- Application receives and acts on records belonging to the attacker domain
How to detect it
Search DNS and application logs for hostnames containing embedded null bytes or unusual truncation patterns; review process execution and network flows for resolutions that deviate from validated names.
- hostnames containing \x00 or %00 sequences in DNS query logs
- dns.resolve* or dns.reverse calls with strings matching attacker.example\0 pattern
- c-ares resolution logs showing truncated names after NUL byte
What your security team should do
- Apply Node.js security updates immediately upon release for 22.x/24.x/26.x branches
- Audit application code for direct use of dns.resolve*() and dns.reverse() on externally supplied names
- Add input sanitization to strip or block NUL bytes in any hostname before DNS operations
- Monitor EPSS and KEV feeds for changes in exploitation likelihood
The record
A flaw in Node.js DNS resolution allows hostnames containing a NUL byte to be silently truncated by the dns.resolve*() functions and dns.reverse(). This is an incomplete fix of CVE-2026-48930, which only covered dns.lookup() and the net/tls host options. Because the name is passed to c-ares as a C string, resolving attacker.example\0.trusted.example queries attacker.example and returns its records without any error. Applications that validate a hostname, for example against a domain allowlist, and then resolve it with dns.resolve*() can act on records for a different name than the one they validated. This vulnerability affects Node.js 26.x, 24.x, and 22.x.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-115828 In Secret Server versions earlier than 12.3.1, Secret Server did not always validate the… CWE-284
- CVE-2026-119620 A vulnerability was determined in 37954679 cak-filemanagement-system up to… CWE-284
- CVE-2025-8574 The Database Cleaner plugin for WordPress is vulnerable to arbitrary table deletion in… CWE-284
- CVE-2026-61708 SOCFortress CoPilot focuses on providing a single pane of glass for all your security… CWE-284
- CVE-2026-75882 An improper access control vulnerability in ESET Endpoint Encryption and ESET Full Disk… CWE-284
- CVE-2026-59387 The Nginx routing configuration for Cloud Controller blocks unauthenticated access to… CWE-284
- CVE-2026-119317 On Linux, an authenticated, low-privileged Nessus user with scan-creation rights could… CWE-284
- CVE-2026-6877 ServiceNow has addressed a domain separation bypass security issue that was identified in… CWE-284