CVE-2026-55990 in Unboundinfo

Summary

by MITRE • 07/22/2026

In NLnet Labs Unbound 1.7.0 up to and including 1.25.1, when the 'dnscrypt:' clause lists more 'dnscrypt-provider-cert:' files than there are matching 'dnscrypt-secret-key:' files, Unbound fills only the matched prefix and leaves the tail slots at the '0xdb' fill that libsodium's allocator writes into every allocation. Unbound would then iterate over the number of cert files, not the actual slots, so it walks into a slot with garbage data filled with '0xdb' bytes. Any unauthenticated client that sends one UDP datagram of ≥ 68 bytes whose first 8 bytes are '0xdb' to 'dnscrypt-port' will use that garbage entry which leads to a garbage dereference killing the server. This is a silent faulty configuration that goes unnoticed until triggered with the right client query. Unbound needs to be compiled with DNSCrypt support ('--enable-dnscrypt').

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 07/22/2026

This vulnerability exists in NLnet Labs Unbound versions 1.7.0 through 1.25.1 and represents a critical memory corruption flaw that can lead to remote code execution or denial of service. The issue stems from improper handling of DNSCrypt provider certificate and secret key configurations where the number of certificate files exceeds the number of corresponding secret key files. When Unbound processes these mismatched configurations, it allocates memory arrays based on the certificate file count but only populates the initial portion of these arrays with valid data, leaving subsequent slots filled with garbage values from libsodium's memory allocator.

The technical flaw manifests when Unbound iterates over the number of certificate files rather than the actual populated array slots, causing it to access memory locations containing '0xdb' bytes that were written by libsodium's allocator. This particular byte pattern becomes problematic because any unauthenticated client can trigger this vulnerability by sending a specially crafted UDP datagram of 68 bytes or more where the first eight bytes are set to '0xdb'. The server processes this malformed packet through the DNSCrypt port and attempts to dereference the garbage data in the improperly initialized array slot, resulting in an immediate crash or potential memory corruption.

This vulnerability operates under the principle of improper input validation and buffer management, falling under CWE-121 for buffer overflow conditions and CWE-125 for out-of-bounds read errors. The attack vector requires only a simple UDP packet sent to the configured DNSCrypt port, making it particularly dangerous as it can be exploited by any remote attacker without authentication requirements. The configuration issue remains silent and undetectable during normal operation until specifically triggered, which makes it especially insidious in production environments where administrators may not immediately notice the misconfiguration.

The operational impact of this vulnerability extends beyond simple service disruption to potentially enabling more sophisticated attacks depending on the memory corruption patterns that occur. When the server crashes due to garbage dereference, it results in denial of service for legitimate DNS queries, affecting all network users relying on that DNS resolver. The vulnerability's silent nature means that administrators might unknowingly run vulnerable configurations for extended periods, creating persistent security risks in their infrastructure.

Mitigation strategies should focus on immediate patching of Unbound to versions beyond 1.25.1 where this issue has been resolved, along with implementing proper configuration validation to ensure certificate and secret key file counts match appropriately. Network administrators should also consider implementing monitoring for unusual DNSCrypt traffic patterns that might indicate exploitation attempts. The fix in newer versions ensures that Unbound properly validates array bounds before iteration and initializes all memory slots correctly regardless of the configuration parameters provided. Additionally, organizations should review their DNSCrypt configurations to verify proper matching between certificate and secret key files, implementing automated checks to prevent similar misconfigurations from occurring in the future. This vulnerability demonstrates the importance of thorough input validation and proper memory management in security-critical network services, particularly those handling untrusted network traffic.

Responsible

NLnet Labs

Reservation

06/22/2026

Disclosure

07/22/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you need the next level of professionalism?

Upgrade your account now!