Node.js: DNS Resolver NUL Byte Truncation (CVE-2026-105482)
Node.js is vulnerable to NUL byte truncation in dns.resolve* functions, allowing attackers to bypass allowlist filters and perform SSRF by injecting a NUL character into hostname strings.
CVE search metadata
CVE search record: CVE-2026-105482. KEV: no. Product: Node.js (< 22.23.4, < 24.22.1, < 26.12.1). Brief: Node.js: DNS Resolver NUL Byte Truncation (CVE-2026-105482). Brief link: https://feed.craftedsignal.io/briefs/2026-10-nodejs-dns-ssrf/
Triage facts
Revision 1- Applicability
- Node.js (< 22.23.4, < 24.22.1, < 26.12.1)
- Evidence
- Unknown
- Severity
- High
- Action
- Elevated
- Sources
- 3 public sources
- Freshness
- Revision 1Oct 21, 17:05 UTC
- Detection
- 1 rule
- Vulnerabilities
- 1 CVE
- Source quality
- B2Likely
Node.js versions before 22.23.4, 24.22.1, and 26.12.1 are vulnerable to a NUL byte truncation issue within the dns.resolve* functions. The vulnerability exists because these functions pass hostname strings to the c-ares library, which processes them as C-style strings. When a NUL byte (\0) is included in a hostname (e.g., attacker.com\0.trusted.corp), application-level allowlist checks may evaluate the full string as legitimate, but the underlying DNS resolver truncates the string at the NUL byte, resulting in a query to an attacker-controlled domain. This flaw enables Server-Side Request Forgery (SSRF) against internal services.
Impact
Successful exploitation allows an attacker to bypass domain-based allowlists implemented via endsWith, includes, or match functions. This facilitates SSRF attacks against internal infrastructure, including 169.254.169.254 (metadata services), local services, or restricted internal network assets.
Recommendation
- Upgrade Node.js installations to the patched versions: 22.23.4, 24.22.1, or 26.12.1.
- Implement application-level input validation to reject hostnames containing a NUL byte (
\0) before passing them to DNS resolution functions. - Audit custom security wrappers that rely on hostname string comparisons to filter outgoing traffic or allowlist internal resources.
Immediate actions
Patch Node.js to 22.23.4, 24.22.1, or 26.12.1.
Threat Hunt
Search application and web server logs for requests containing %00 or 0x00 bytes in URL parameters.
Data: Web server access logs
Mitigations
Upgrade affected Node.js products.
CVE-2026-105482
Gaps
- Visibility into non-web SSRF vectors such as message queues or local configuration files.
Detection coverage 1
Detect CVE-2026-105482 - Potential SSRF via NUL Byte in Hostname
highDetects attempts to pass hostnames containing a NUL byte to Node.js DNS resolver functions, which is indicative of an allowlist bypass attempt.
Detection queries are available on the platform. Get full rules →