Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
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).
Primary rating from Vendor (NLnet Labs).
CVSS VectorVendor: NLnet Labs
Lifecycle Timeline
2DescriptionCVE.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.
Unbound 1.6.4 through 1.9.4 contain a vulnerability in the ipsec module that can cause shell code execution after receiv
Use-after-free in the DNSSEC validator of NLnet Labs Unbound resolver versions 1.19.1 through 1.25.0 allows remote attac
Remote denial of service in NLnet Labs Unbound recursive DNS resolver (versions up to and including 1.25.0) allows an at
Heap overflow denial-of-service in NLnet Labs Unbound recursive DNS resolver versions 1.14.0 through 1.25.0 allows remot
Remote denial of service in NLnet Labs Unbound 1.22.0 through 1.25.1 lets an unauthenticated client exhaust configured m
Remote denial-of-service in NLnet Labs Unbound 1.23.0 through 1.25.1 lets an attacker who controls a delegated DNS zone
Remote denial-of-service in NLnet Labs Unbound 1.9.0 through 1.25.1 allows an unauthenticated attacker to crash the recu
DNS cache poisoning in NLnet Labs Unbound (1.7.0 through 1.25.1) lets an actor who controls a single delegated zone unde
A vulnerability named 'Non-Responsive Delegation Attack' (NRDelegation Attack) has been discovered in various DNS resolv
An incomplete fix for CVE-2020-12662 was shipped for Unbound in Red Hat Enterprise Linux 7, as part of erratum RHSA-2020
Unbound before 1.10.1 has an infinite loop via malformed DNS answers received from upstream servers. Rated high severity
Unbound before 1.10.1 has Insufficient Control of Network Message Volume, aka an "NXNSAttack" issue. Rated high severity
Same technique Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-47670
GHSA-cj23-2crp-2xvv