Skip to main content

NLnet Labs Unbound EUVDEUVD-2026-47670

| CVE-2026-46582 LOW
Improperly Implemented Security Check for Standard (CWE-358)
2026-07-22 NLnet Labs GHSA-cj23-2crp-2xvv
3.7
CVSS 3.1 · Vendor: NLnet Labs

Severity by source

Vendor (NLnet Labs) PRIMARY
3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI
3.7 LOW

Network delivery via DNS queries (AV:N), genuinely high coordination complexity including thread race and specific zone structure (AC:H), no authentication needed (PR:N), low scoped integrity impact on a single cache record only (I:L, S:U).

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

Primary rating from Vendor (NLnet Labs).

CVSS VectorVendor: NLnet Labs

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Jul 22, 2026 - 16:18 EUVD
Analysis Generated
Jul 22, 2026 - 13:50 vuln.today

DescriptionCVE.org

In NLnet Labs Unbound 1.6.0 up to and including 1.25.1, a replay of a wildcard rrset as another piece of data, could be briefly considered DNSSEC secure based only on the RRSIG validation and stored into cache, before later validation treats it as bogus based on NSEC validation. When the resolving thread puts secure on the rrset, and another thread that is on the serve expired path then picks up the updated rrset contents with the secure status for a reply, it can be used to change a specific record, next to a wildcard that could be covered by the wildcard, into the wildcard. A malicious actor can exploit the possible poisonous effect by having any DNSSEC-singed domain (irrelevant to the victim domain) and a CNAME wrapper record that points to a record next to a wildcard (that could be covered by the wildcard). Then quering Unbound for the wildcard sibling record would seed the secure message. A later (after expiry) query for the CNAME wrapper would need to resolve the target sibling record. If the wildcard replay is injected into the response, the wildcard rrset will update the expired sibling record with a secure status before completing proper wildcard validation with NSEC records and eventually treating the CNAME wrapper answer as bogus. The updated poisoned rrset is now secure and points to the wildcard. This vulnerability is explicit for the serve expired path and needs injection of the signed wildcard rrset without the NSEC accompanying rrset.

AnalysisAI

DNS cache poisoning in Unbound 1.6.0 through 1.25.1 allows a remote, unauthenticated attacker to inject a falsely DNSSEC-secure wildcard record into the resolver cache by exploiting a race condition on the serve-expired code path. The flaw arises because wildcard RRSET entries can be briefly marked secure after RRSIG validation but before NSEC validation completes, and a concurrent serve-expired thread can capture and propagate that intermediate secure status before it is corrected to bogus. No public exploit has been identified at time of analysis and CISA KEV does not list this vulnerability, but the integrity impact on DNSSEC-relying downstream clients makes it notable for operators running serve-expired in recursive resolver deployments.

Technical ContextAI

Unbound is a validating, recursive, caching DNS resolver developed by NLnet Labs, widely deployed by ISPs, enterprises, and security appliances. The vulnerability resides in the interaction between Unbound's multi-threaded DNSSEC validation pipeline and its serve-expired feature (RFC 8767), which allows the resolver to return expired cache entries while a background refresh is underway. DNSSEC wildcard record validation requires two steps: (1) verifying the RRSIG covering the synthesized wildcard answer, and (2) verifying the accompanying NSEC/NSEC3 record that proves no closer match exists. CWE-358 (Improperly Implemented Security Check for Standard) captures the root cause: step 1 is allowed to set a 'secure' status on the RRSET in shared cache memory before step 2 is performed, and the serve-expired thread reads and acts on that intermediate, incomplete security label. The affected CPE is cpe:2.3:a:nlnet_labs:unbound:*:*:*:*:*:*:*:* covering 1.6.0 through 1.25.1. The attack is specific to wildcard DNS records and the two-phase DNSSEC validation ordering in Unbound's threading model.

RemediationAI

Operators should consult the NLnet Labs vendor advisory at https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-46582.txt for the specific patched release; no exact fix version number was provided in the available input data, so 'Patch available per vendor advisory' is the most accurate characterization - verify the release notes for the minimum safe version before upgrading. As a compensating control, disabling the serve-expired feature (removing or commenting out 'serve-expired: yes' in unbound.conf) eliminates the vulnerable code path entirely, since the CVE description explicitly states the vulnerability is specific to the serve-expired path; the trade-off is loss of stale-while-revalidate behavior and potential increase in NXDOMAIN responses during upstream failures. Restricting serve-expired-ttl to zero or a very short window is a partial mitigation that reduces the exploitation window but does not eliminate it. For deployments where serve-expired cannot be disabled, prioritizing the vendor patch and monitoring for anomalous wildcard record cache entries is recommended.

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-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-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-44690 HIGH
7.5 Jul 22

DNS cache poisoning in NLnet Labs Unbound (1.7.0 through 1.25.1) lets an actor who controls a single delegated zone unde

CVE-2022-3204 HIGH
7.5 Sep 26

A vulnerability named 'Non-Responsive Delegation Attack' (NRDelegation Attack) has been discovered in various DNS resolv

CVE-2020-10772 HIGH
7.5 Nov 27

An incomplete fix for CVE-2020-12662 was shipped for Unbound in Red Hat Enterprise Linux 7, as part of erratum RHSA-2020

CVE-2020-12663 HIGH
7.5 May 19

Unbound before 1.10.1 has an infinite loop via malformed DNS answers received from upstream servers. Rated high severity

CVE-2020-12662 HIGH
7.5 May 19

Unbound before 1.10.1 has Insufficient Control of Network Message Volume, aka an "NXNSAttack" issue. Rated high severity

Share

EUVD-2026-47670 vulnerability details – vuln.today

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