CVE-2026-50252: CWE-349: Acceptance of Extraneous Untrusted Data With Trusted Data in NLnet Labs Unbound
In NLnet Labs Unbound 1.4.22 up to and including 1.25.1, UDP source port is randomized and intended to serve as a secret value that increases the entropy of DNS transactions. When resolver load balancing policies depend on the source port while their outcome is revealed this secrecy is undermined. The vulnerability arises when the load balancing policy is consistent with respect to the incoming source UDP port and IP address while heavily depending on the incoming source UDP port as a randomization source. When the SO_REUSEPORT configuration option is enabled ('so-reuseport: yes') in Unbound (by default), it meets these conditions, making it vulnerable for DNS cache poisoning attacks. Upon startup, Unbound randomly partitions the available UDP source port space into disjoint subsets of (almost) equal size, assigning each subset to a specific worker thread. When an incoming DNS query is received, the kernel’s SO_REUSEPORT load balancing mechanism deterministically assigns the query to a socket associated with a particular thread. All outgoing DNS queries generated during the resolution of that request use source ports selected exclusively from the port subset assigned to the corresponding thread. Since these port subsets are disjoint across threads, the source port observed in a resolver’s outgoing query to an authoritative name server serves as a reliable indicator of the worker thread that processed the original client query. A malicious actor can acquire the mapping between incoming UDP source ports (for a given fixed source IP address) and Unbound worker threads and leverage it to conduct DNS cache poisoning attacks by effectively lowering the random port population per thread.
AI Analysis
Technical Summary
In NLnet Labs Unbound versions up to and including 1.25.1, the UDP source port is randomized to increase DNS transaction entropy. However, when the SO_REUSEPORT option is enabled (default setting), the kernel partitions UDP source ports into disjoint subsets assigned to worker threads. This deterministic assignment allows an attacker to map incoming UDP source ports to specific worker threads. Because outgoing DNS queries use source ports from the thread's subset, the attacker can reduce the randomization space per thread, facilitating DNS cache poisoning attacks by lowering the effective entropy of source ports used in queries to authoritative name servers.
Potential Impact
The vulnerability allows attackers to conduct DNS cache poisoning attacks by exploiting the deterministic mapping of UDP source ports to worker threads. This reduces the effective randomness of source ports used in DNS queries, weakening the security of DNS transactions. Successful exploitation could lead to cache poisoning, potentially redirecting users to malicious sites or disrupting DNS resolution integrity. There are no known exploits in the wild at this time.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is released, consider disabling the SO_REUSEPORT option ('so-reuseport: no') in Unbound configuration if feasible, to avoid the deterministic port partitioning that enables this attack. Monitor NLnet Labs advisories for updates and official patches.
CVE-2026-50252: CWE-349: Acceptance of Extraneous Untrusted Data With Trusted Data in NLnet Labs Unbound
Description
In NLnet Labs Unbound 1.4.22 up to and including 1.25.1, UDP source port is randomized and intended to serve as a secret value that increases the entropy of DNS transactions. When resolver load balancing policies depend on the source port while their outcome is revealed this secrecy is undermined. The vulnerability arises when the load balancing policy is consistent with respect to the incoming source UDP port and IP address while heavily depending on the incoming source UDP port as a randomization source. When the SO_REUSEPORT configuration option is enabled ('so-reuseport: yes') in Unbound (by default), it meets these conditions, making it vulnerable for DNS cache poisoning attacks. Upon startup, Unbound randomly partitions the available UDP source port space into disjoint subsets of (almost) equal size, assigning each subset to a specific worker thread. When an incoming DNS query is received, the kernel’s SO_REUSEPORT load balancing mechanism deterministically assigns the query to a socket associated with a particular thread. All outgoing DNS queries generated during the resolution of that request use source ports selected exclusively from the port subset assigned to the corresponding thread. Since these port subsets are disjoint across threads, the source port observed in a resolver’s outgoing query to an authoritative name server serves as a reliable indicator of the worker thread that processed the original client query. A malicious actor can acquire the mapping between incoming UDP source ports (for a given fixed source IP address) and Unbound worker threads and leverage it to conduct DNS cache poisoning attacks by effectively lowering the random port population per thread.
CVSS v4.0
Score 5.7medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
In NLnet Labs Unbound versions up to and including 1.25.1, the UDP source port is randomized to increase DNS transaction entropy. However, when the SO_REUSEPORT option is enabled (default setting), the kernel partitions UDP source ports into disjoint subsets assigned to worker threads. This deterministic assignment allows an attacker to map incoming UDP source ports to specific worker threads. Because outgoing DNS queries use source ports from the thread's subset, the attacker can reduce the randomization space per thread, facilitating DNS cache poisoning attacks by lowering the effective entropy of source ports used in queries to authoritative name servers.
Potential Impact
The vulnerability allows attackers to conduct DNS cache poisoning attacks by exploiting the deterministic mapping of UDP source ports to worker threads. This reduces the effective randomness of source ports used in DNS queries, weakening the security of DNS transactions. Successful exploitation could lead to cache poisoning, potentially redirecting users to malicious sites or disrupting DNS resolution integrity. There are no known exploits in the wild at this time.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is released, consider disabling the SO_REUSEPORT option ('so-reuseport: no') in Unbound configuration if feasible, to avoid the deterministic port partitioning that enables this attack. Monitor NLnet Labs advisories for updates and official patches.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- NLnet Labs
- Date Reserved
- 2026-06-22T12:35:21.348Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a60c4229c2644c7f80e9247
Added to database: 07/22/2026, 13:22:42 UTC
Last enriched: 07/22/2026, 13:39:34 UTC
Last updated: 07/23/2026, 01:08:14 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.