CVE-2026-50252
Received Received - Intake

DNS Cache Poisoning in Unbound DNS Resolver

Vulnerability report for CVE-2026-50252, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-22

Last updated on: 2026-07-22

Assigner: NLnet Labs

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 Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-22
Last Modified
2026-07-22
Generated
2026-07-22
AI Q&A
2026-07-22
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
nlnet_labs unbound to 1.25.1 (inc)
nlnet_labs unbound 1.25.2

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-349 The product, when processing trusted data, accepts any untrusted data that is also included with the trusted data, treating the untrusted data as if it were trusted.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in NLnet Labs Unbound DNS resolver versions 1.4.22 to 1.25.1 allows DNS cache poisoning attacks due to improper UDP source port randomization when the SO_REUSEPORT option is enabled. The resolver partitions UDP source ports into fixed subsets assigned to worker threads, creating a deterministic mapping between incoming source ports and threads. An attacker can exploit this to predict port assignments and poison the DNS cache.

Detection Guidance

To detect this vulnerability, check if your Unbound version is between 1.4.22 and 1.25.1 by running 'unbound -v'. If SO_REUSEPORT is enabled (default), verify if UDP source ports are partitioned per thread using network monitoring tools like tcpdump or Wireshark to observe port assignments.

Impact Analysis

An attacker could redirect your DNS queries to malicious servers, leading to phishing attacks, data theft, or unauthorized access to services. This could compromise your online accounts, intercept communications, or deliver malware by impersonating legitimate domains.

Compliance Impact

This vulnerability could lead to unauthorized data access or interception, violating GDPR's data protection requirements and HIPAA's security rules for protected health information. Organizations using vulnerable Unbound versions may face compliance breaches and legal penalties.

Mitigation Strategies

Immediately upgrade Unbound to version 1.25.2 or later, which fixes the issue by implementing a shared port structure. Alternatively, disable SO_REUSEPORT in the Unbound configuration file by setting 'so-reuseport: no' and restart the service.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-50252. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart