Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect as remote DoQ client
-
DeliverySend query spawning pending mesh reply
-
ExploitTrigger QUIC path migration mid-reply
-
ExecutionForce stream/connection cleanup frees stream
-
PersistPending reply dereferences stale pointer
-
ImpactResolver crash (DNS denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target Unbound resolver (1.22.0-1.26.1) has DNS-over-QUIC (DoQ) enabled AND is running in multi-threaded mode - both are the specific preconditions named in the description; neither is the universal default for Unbound deployments. The attacker must be a remote DoQ client able to initiate a QUIC connection and trigger a path migration (PR:N, no authentication) while a mesh reply for that stream is still pending, i.e. the attacker must hit the timing window in which cleanup and the outstanding reply overlap. Limiting factors: resolvers that do not expose DoQ, or run single-threaded, are not affected; success is race-dependent, so a single attempt may not reliably crash the service; impact is confined to availability (service crash) with no data exposure or code execution indicated. |
| Impact | This is a genuine but bounded availability risk. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) describes a remote, unauthenticated, availability-only impact with no confidentiality or integrity loss - consistent with the description, which explicitly ends in a crash (denial of service), not code execution, despite the CWE-416 use-after-free classification. One caveat: the vendor rated attack complexity as AC:L, but the described mechanism is a race between QUIC path-migration-triggered stream/connection cleanup and a still-pending mesh reply holding a stale pointer under multi-threaded operation; a timing-window race of this kind more honestly warrants AC:H, which would lower the real-world score. No EPSS score was provided in the input, and there is no CISA KEV listing and no public proof-of-concept referenced - only a vendor advisory from NLnet Labs. Net assessment: a real, patch-worthy DoS affecting resolvers that have specifically enabled DNS-over-QUIC with multiple threads, but NOT a drop-everything widespread-exploitation emergency - exploitation is gated by a non-default protocol feature and a timing-dependent race, and there is no evidence of exploitation in the wild. |
| Exploit ScenarioDerived | A remote attacker connects to an Unbound resolver that has DNS-over-QUIC enabled and runs with multiple threads, then issues queries and triggers a QUIC connection path migration at a moment when a mesh reply is still pending for that stream. The cleanup frees the DoQ stream while the pending reply retains a pointer to it, and when the reply later completes it dereferences the freed memory, crashing the resolver and denying DNS service to downstream clients. No public exploit code is identified at time of analysis, and exploitation depends on winning a timing race. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Denial of service in NLnet Labs Unbound versions 1.22.0 through 1.26.1, where a remote DNS-over-QUIC client can crash the resolver by triggering a QUIC path migration at the moment a mesh reply still holds a pointer to the associated DoQ stream. The resulting use-after-free dereferences the freed stream when the pending reply completes, terminating the process and interrupting DNS resolution for all clients of that instance. Exploitation is race-dependent and only possible when DoQ is enabled and Unbound runs multi-threaded; no public exploit code was identified and the issue is not confirmed actively exploited (CISA KEV), so this is a genuine but bounded availability risk rather than a wormable or data-exposing flaw.
RemediationAI
Apply the Unbound release that follows 1.26.1 as documented in the vendor advisory at https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-97206.txt; patch availability is confirmed per vendor advisory, but no exact fixed version string is present in the supplied data, so verify the target version against that advisory before upgrading. If an immediate upgrade is not possible, the most direct mitigation is to disable DNS-over-QUIC entirely (remove or set the DoQ/QUIC listener configuration so no QUIC port is bound, and block the configured QUIC port at the network perimeter), accepting the loss of DoQ transport for clients; alternatively, force single-threaded operation (num-threads: 1) to eliminate the multi-threaded lifetime race, at the cost of reduced throughput and resolver scalability on large deployments. Unbound's own supervision (systemd Restart=, or a process watchdog) plus monitoring for worker crashes provides only limited containment since repeated trigger attempts can sustain an outage. Note that TLS/port-based filtering of DoQ is coarse because QUIC traffic is encrypted, so endpoint-level configuration changes are preferred over deep inspection.
Affected VersionsENISA
Affected Packages
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 is a validating, recursive, caching DNS resolver, and its DNS-over-QUIC (DoQ) support in the 1.22.0-1.26.1 line couples the QUIC transport layer (per-stream and per-connection state) with the internal "mesh" request/response plumbing used to route queries across worker threads. The vulnerability is CWE-416 (use-after-free): when a remote DoQ client initiates a QUIC path migration, Unbound's connection/stream cleanup logic can run while an outstanding mesh reply still carries a pointer to that DoQ stream object. The stream is freed during cleanup, and the later completion of the mesh reply dereferences the stale pointer, corrupting memory and crashing the worker. Because the flaw sits in a lifetime/ownership boundary between asynchronous I/O and the mesh scheduler, it is only reachable under multi-threaded operation and depends on a narrow timing overlap between cleanup and reply delivery - consistent with the independently assessed vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H, which rates the attack complexity high despite the original 7.5 submission scoring it as low. Impact is confined to availability; no confidentiality or integrity impact, code execution, or data exposure is indicated.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated DoQ client (AV:N/PR:N/UI:N), but the use-after-free is a timing race between cleanup and a pending reply, so AC:H; impact is crash-only, hence A:H with C:N/I:N.
Primary rating from Vendor (NLnet Labs).
CVSS VectorVendor: NLnet Labs
Lifecycle Timeline
2DescriptionCVE.org
NLnet Labs Unbound, 1.22.0 up to and including version 1.26.1, contains a DNS-over-QUIC (DoQ) lifetime bug reachable by a remote DoQ client under multi-threaded operation. A client-triggered QUIC path migration can enter stream/connection cleanup while a mesh reply still retains a pointer to the DoQ stream. Cleanup frees the DoQ stream and when the pending mesh reply later completes it dereferences a stale pointer leading to a crash.
Executive ViewAI
NLnet Labs Unbound, the recursive resolver underpinning our DNS service, is affected by a remotely triggerable crash in versions 1.22.0 through 1.26.1 that can take a resolver instance completely offline and interrupt name resolution for every client that instance serves. The flaw requires DNS-over-QUIC to be enabled and multi-threaded operation, and its race-dependent nature makes reliable exploitation difficult, so the exposure is a bounded availability and service-continuity risk rather than a data-compromise or self-propagating threat. Because no vendor-released patch has been identified at time of analysis, leadership should frame this as an operational-resilience decision: reduce exposure through configuration now, and plan the upgrade path for when a fix ships.
No vendor-released patch identified at time of analysis. Interim mitigations: disable the DoQ listener where DNS-over-QUIC is not a required service; restrict UDP 853 to trusted client networks via firewall or ACL; set num-threads to 1 on exposed instances to remove the multi-threaded precondition, accepting the associated throughput cost; and run resolvers under a process supervisor with automatic restart, crash alerting, and redundant instances behind health checks so a single process termination does not interrupt resolution for the broader client base.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Unbound 1.6.4 through 1.9.4 contain a vulnerability in the ipsec module that can cause shell code execution after receiv
A crafted DNSKEY whose owner name is a compression pointer into its own RDATA overflows the digest buffer in the DNSSEC
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
Heap-based memory corruption in NLnet Labs Unbound up to and including 1.26.0 lets a remote, unauthenticated attacker wh
Unbound before 1.9.4 accesses uninitialized memory, which allows remote attackers to trigger a crash via a crafted NOTIF
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
Heap buffer overflow in NLnet Labs Unbound 1.26.0 and earlier can be triggered when a resolver processing a large TCP-fr
Denial-of-service through algorithmic complexity attacks in NLnet Labs Unbound up to and including 1.26.0 can degrade or
EUVD-2026-107154
GHSA-jc7q-6h55-rr57
NVD
CVE.org
EPSS
VulDB
Exploit-DB