Skip to main content

Unbound CVE-2026-50252

| EUVDEUVD-2026-47676 MEDIUM
Acceptance of Extraneous Untrusted Data With Trusted Data (CWE-349)
2026-07-22 NLnet Labs GHSA-jfgc-mgqq-r573
5.7
CVSS 4.0 · Vendor: NLnet Labs
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Position on adjacent network path to observe outgoing UDP
  2. Delivery
    Send probe queries from fixed source IP to Unbound
  3. Exploit
    Record outgoing source ports to authoritative name servers
  4. Execution
    Derive per-thread port subset map
  5. Persist
    Trigger target domain resolution and flood forged authoritative responses within narrowed port range
  6. Impact
    Poison resolver cache for target domain

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V4 - API and Web Service Acceptance of extraneous untrusted data
Exploitation Conditions

The SO_REUSEPORT option ('so-reuseport: yes') must be active in Unbound - this is the default configuration, so no special operator misconfiguration is required to be vulnerable. Unbound must be running with multiple worker threads (the default multi-threaded mode), as single-threaded deployments do not partition the port space and are not affected. The attacker must be network-adjacent to Unbound's outbound DNS path and able to passively observe UDP source ports on queries Unbound sends to authoritative name servers - this limits realistic attack positions to adversaries with ISP-level or peering-point-level access, BGP hijackers, or actors co-located on the same network segment as the resolver. Exploitation is further constrained by the need to conduct reconnaissance (building the thread-to-port mapping) before launching the cache poisoning phase, adding latency and increasing detection surface. DNSSEC-signed zones are protected even if poisoning succeeds, as Unbound will reject cryptographically invalid responses.

Impact

The CVSS 4.0 score of 5.7 (AV:A/AC:L/AT:P) reflects a realistic but bounded threat. The adjacent-network attack vector is the most significant limiting factor: the attacker must be positioned to observe Unbound's outgoing UDP traffic to authoritative name servers, restricting realistic threat actors to malicious ISPs, BGP-level adversaries, or network-adjacent actors at peering points. AT:P acknowledges specific preconditions (multi-threaded configuration with SO_REUSEPORT), though since SO_REUSEPORT is enabled by default, the default Unbound deployment is vulnerable without any operator misconfiguration. Downstream integrity impact is rated High (SI:H and VI:H), because successful cache poisoning can fully redirect all clients using the affected resolver. No EPSS score is provided in the available data, leaving quantitative exploitation probability unconfirmed. Proof-of-concept code exists (E:P), elevating practical risk above theoretical. The absence of a CISA KEV entry suggests exploitation is not yet widespread or confirmed in the wild, but the existence of POC code means the attack is within reach of sophisticated threat actors. The vulnerability does not eliminate source port randomization entirely - it reduces the effective per-thread port space - meaning the attack is harder than exploiting a fully predictable source port but significantly easier than brute-forcing a full 16-bit space, particularly against resolvers with many worker threads that create smaller per-thread subsets.

Exploit ScenarioDerived

An attacker at a network-adjacent vantage point - such as an upstream ISP or BGP peer - sends a series of DNS queries to the target Unbound resolver from a fixed source IP address, monitors the UDP source ports Unbound uses for outgoing queries to authoritative name servers, and constructs the per-thread port-subset map. Armed with this mapping, the attacker identifies a specific target domain, triggers resolution, predicts the narrow port subset the handling thread will use, and floods the resolver with forged authoritative responses matching the reduced port range until one collides with the legitimate transaction ID, successfully poisoning the cache. Proof-of-concept code publicly demonstrating this attack technique exists.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 22, 2026

DNS cache poisoning risk in NLnet Labs Unbound 1.4.22 through 1.25.1 arises because the SO_REUSEPORT load balancing mechanism structurally leaks the secret entropy value - UDP source port randomization - that defends against Kaminsky-style attacks. Each worker thread is assigned a disjoint subset of source ports at startup, so an adjacent-network attacker who can observe Unbound's outgoing UDP queries to authoritative name servers can infer the thread-to-port-subset mapping and substantially reduce the port space to guess during a cache poisoning attempt. Proof-of-concept exploit code exists (CVSS 4.0 E:P); no confirmed active exploitation or CISA KEV listing has been identified.

RemediationAI

Consult the NLnet Labs advisory at https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-50252.txt for the patched release version, which is not confirmed in the currently available intelligence - operators must verify the specific fix version directly from the vendor before upgrading. As an immediate compensating control, disabling SO_REUSEPORT by setting 'so-reuseport: no' in the Unbound configuration file removes the port-subset partitioning behavior and restores full source-port entropy across all threads. The trade-off is meaningful: SO_REUSEPORT enables kernel-native load balancing across worker threads without locking overhead, so disabling it will reduce query throughput on multi-core systems under load - high-volume resolvers and ISP-grade deployments should test performance impact before applying this workaround in production. As a complementary defense, ensuring DNSSEC validation is enabled (already common in Unbound deployments) will cause the resolver to reject forged responses for DNSSEC-signed zones even if cache poisoning is attempted, limiting the blast radius of successful exploitation to unsigned domains.

Affected VersionsENISA

Unbound 1.4.22 <1.25.2

Affected Packages

euvd unbound fix: 1.25.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Unbound uses UDP source port randomization as a core defense against DNS cache poisoning, pairing a random source port with the 16-bit DNS transaction ID to create a combined entropy space too large to brute-force in a standard response window. The Linux SO_REUSEPORT socket option allows multiple sockets to bind the same address and port, enabling the kernel to load-balance incoming packets across worker threads without application-level locking. Unbound's implementation capitalizes on this by partitioning the full source port space into per-thread disjoint subsets at startup, with each thread drawing exclusively from its assigned subset for outgoing queries. This creates a deterministic, observable side-channel: the source port of any outgoing query to an authoritative server reveals which thread - and therefore which port subset - handled the originating client request. CWE-349 (Acceptance of Extraneous Untrusted Data With Trusted Data) reflects the root cause: data intended as a secret (source port) is structurally coupled to publicly observable behavior (kernel load balancing outcome), destroying the secrecy assumption. The affected product is identified as cpe:2.3:a:nlnet_labs:unbound:*:*:*:*:*:*:*:*.

Know when Unbound gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (NLnet Labs) PRIMARY 5.7 MEDIUM
CVSS:4.0/AV:A/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:H/E:P/U:Amber
vuln.today AI 6.1 MEDIUM

Adjacent vector required to observe outgoing UDP source ports; high complexity because attacker must build the thread-mapping before executing cache poisoning; scope changes as downstream clients are affected by a poisoned cache.

3.1 AV:A/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N
4.0 AV:A/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N
SUSE 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (NLnet Labs).

CVSS VectorVendor: NLnet Labs

Attack Vector
Adjacent
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

1
Patch available
Jul 22, 2026 - 16:18 EUVD

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
widely used recursive resolver, competes with BIND, PowerDNS, and Knot
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Controlled
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2019-18934 HIGH POC
7.3 Nov 19

Unbound 1.6.4 through 1.9.4 contain a vulnerability in the ipsec module that can cause shell code execution after receiv

CVE-2026-81642 CRITICAL
9.1 Sep 16

A crafted DNSKEY whose owner name is a compression pointer into its own RDATA overflows the digest buffer in the DNSSEC

CVE-2026-33278 CRITICAL
9.1 May 20

Use-after-free in the DNSSEC validator of NLnet Labs Unbound resolver versions 1.19.1 through 1.25.0 allows remote attac

CVE-2026-42959 HIGH
8.7 May 20

Remote denial of service in NLnet Labs Unbound recursive DNS resolver (versions up to and including 1.25.0) allows an at

CVE-2026-42944 HIGH
8.7 May 20

Heap overflow denial-of-service in NLnet Labs Unbound recursive DNS resolver versions 1.14.0 through 1.25.0 allows remot

CVE-2026-82717 HIGH
8.4 Sep 16

Heap-based memory corruption in NLnet Labs Unbound up to and including 1.26.0 lets a remote, unauthenticated attacker wh

CVE-2019-16866 HIGH
7.5 Oct 03

Unbound before 1.9.4 accesses uninitialized memory, which allows remote attackers to trigger a crash via a crafted NOTIF

CVE-2026-32665 HIGH
7.5 Jul 22

Remote denial of service in NLnet Labs Unbound 1.22.0 through 1.25.1 lets an unauthenticated client exhaust configured m

CVE-2026-55973 HIGH
7.5 Jul 22

Remote denial-of-service in NLnet Labs Unbound 1.23.0 through 1.25.1 lets an attacker who controls a delegated DNS zone

CVE-2026-40691 HIGH
7.5 Jul 22

Remote denial-of-service in NLnet Labs Unbound 1.9.0 through 1.25.1 allows an unauthenticated attacker to crash the recu

CVE-2026-81634 HIGH
7.5 Sep 16

Heap buffer overflow in NLnet Labs Unbound 1.26.0 and earlier can be triggered when a resolver processing a large TCP-fr

CVE-2026-85501 HIGH
7.5 Sep 16

Denial-of-service through algorithmic complexity attacks in NLnet Labs Unbound up to and including 1.26.0 can degrade or

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise Micro 5.5 Affected
SUSE Linux Enterprise Module for Basesystem 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy