ZeroHour
The Hacker Newspublished ()ingested [email protected] (The Hacker News)

Critical Unbound DNSSEC Validator Flaw Could Allow RCE via a Malicious DNS Zone

AI summary · glm-5.3-flash

NLnet Labs patched a critical heap overflow (CVE-2026-81642) in Unbound's DNSSEC validator that a malicious DNS zone can trigger for possible RCE.

Unbound 1.26.1, released September 17, fixes nine CVEs, including critical heap overflow CVE-2026-81642 (CVSS 9.1) in the DNSSEC validator, which affects every version through 1.26.0 and can be triggered by an attacker controlling a malicious zone that serves a DNSKEY record with a compression pointer into its own data, causing denial of service and possibly remote code execution. CVE-2026-82717, a heap corruption in CNAME synthesis reported by Ben Morris of Anthropic, could also lead to RCE under certain systems and compilation options. NLnet Labs has not reported exploitation and CISA marks CVE-2026-81642 exploitation as none; standalone and combined patches are available alongside the 1.26.1 release.

  • CVE-2026-81642: critical heap overflow in DNSSEC validator, CVSS 9.1, all versions through 1.26.0 affected
  • Triggered by a DNSKEY record whose owner name is a compression pointer into its own data
  • CVE-2026-82717 heap corruption in CNAME synthesis may also enable RCE under certain build options
  • No exploitation reported; CISA lists CVE-2026-81642 exploitation as none
  • Fixed in Unbound 1.26.1; standalone and combined source patches available

Vulnerabilities mentionedAll →

CVEVulnerabilityCVSSEPSSFlagsAffectedExposurePublished
CVE-2026-33278
NLnet Labs Unbound 1.19.1 up to and including version 1.25.0 has a vulnerability in the DNSSEC validator that enables denial of service and possible remote code

NLnet Labs Unbound 1.19.1 up to and including version 1.25.0 has a vulnerability in the DNSSEC validator that enables denial of service and possible remote code execution as a result of deep copying a data structure and erroneously overwriting a destination pointer. An adversary can exploit the vulnerability by controlling a malicious signed zone and querying a vulnerable Unbound. When DS sub-queries need to suspend validation due to NSEC3 computational budget exhaustion (introduced in Unbound 1.19.1), Unbound deep-copies response messages to preserve them across memory region teardown. A struct-assignment bug overwrites the destination's pointer with the source's pointer. After the sub-query region is freed, the resumed validator dereferences this dangling pointer, triggering a crash or potentially enabling arbitrary code execution. Unbound 1.25.1 contains a patch with a fix to preserve the correct pointer when deep copying the data structure.

NVD description · AI analysis pending
9.11%
  • nlnetlabs unbound
CVE-2026-77860
NLnetLabs Unbound serve-expired flaw bypasses DNSBomb wait-limit defense (DoS)

NLnetLabs Unbound versions 1.20.0 through 1.26.0 contain a flaw on the 'serve-expired' code path that double-decrements the per-client-IP 'wait-limit' counter, one of the countermeasures introduced against the DNSBomb amplification issue (CVE-2024-33655). An attacker who controls an authoritative zone with a short TTL alternates 'slow' queries that the attacker's authoritative server never answers with 'pump' queries for expired cached names, which are answered immediately via serve-expired and decrement the counter twice. By repeating this pattern, the attacker keeps the per-client counter at or below the configured wait-limit indefinitely and can accumulate an arbitrary number of pending queries from a single source IP, up to the global mesh quota (num-queries-per-thread). This undermines a DNSBomb defense and erodes resolver availability; the flaw is rated CVSS 3.7 (low), with network vector, high attack complexity, and low availability-only impact. Any operator running Unbound 1.20.0-1.26.0 is exposed, most critically recursive resolvers with serve-expired enabled; no public PoC is known, it is not in CISA KEV, and no exploitation has been reported.

Do: Upgrade to an NLnet Labs Unbound release newer than 1.26.0 that addresses CVE-2026-77860 as soon as one is available. As an interim mitigation, disable serve-expired ('serve-expired: no') since the flaw lives entirely on that code path, and review wait-limit and num-queries-per-thread settings. Monitor resolver logs for a single source IP alternating never-answered 'slow' queries with queries for expired cached names; note this is a separate, low-severity issue from the Unbound DNSSEC validator RCE reported in recent headlines.

3.7
  • NLnet Labs Unbound 1.20.0 through and including 1.26.0 (serve-expired code path)
mass≈100,000+ resolver deployments (only the subset running 1.20.0-1.26.0 with 'serve-expired' enabled are exploitable)
CVE-2026-77955
Tampered Zone Data Served Before ZONEMD Verification in NLnet Labs Unbound

NLnet Labs Unbound versions 1.13.2 through 1.26.1 contain a data-authenticity flaw (CWE-345) in the ZONEMD integrity check for configured zones (zonemd-check set to yes) that sit below, but not at, a DNSSEC trust anchor. Because the DS/DNSKEY lookups required for ZONEMD validation happen asynchronously, there is an attack window in which tampered zone contents are served to clients or written to a configured zonefile before verification completes; if such a zonefile is written while the check failed, the tampered data are reloaded on startup and served until verification concludes again, and even after a failed check the data persist on disk for future reloads. An attacker positioned to tamper with the zone source data can therefore have bogus DNS records accepted by clients, yielding high integrity impact but no confidentiality or availability impact; the official CVSS 3.1 score is 4.4 medium (AV:N/AC:H/PR:H/UI:N). Only operators running Unbound authoritative-style (auth-zone) configurations with ZONEMD checking enabled for subordinate zones are affected. No public proof-of-concept or known exploitation exists, and although one headline calls it a critical RCE flaw, the vendor's own scoring describes an integrity issue, not code execution.

Do: Upgrade all Unbound instances to a release newer than 1.26.1, per NLnet Labs' advisory for CVE-2026-77955. As an interim mitigation, disable ZONEMD checking (set zonemd-check to no) for zones below a trust anchor, and audit any configured zonefiles for tampered data written during failed verification, deleting them so they are not reloaded at startup.

4.4
  • NLnet Labs Unbound 1.13.2 up to and including 1.26.1
nichelikely only hundreds to low thousands of resolver deployments worldwide (precise count unknown)
CVE-2026-78227
Use-after-free in NLnet Labs Unbound DNS-over-QUIC (DoQ) enables remote crash

NLnet Labs Unbound 1.22.0 through 1.26.1, when compiled for DNS-over-QUIC with '--with-libngtcp2', contains a use-after-free (CWE-416) in DoQ stream handling: ngtcp2's retransmission buffer keeps a shallow pointer into the per-stream output buffer holding the DNS response, and a client RESET_STREAM frees that buffer while the retransmission entries persist. When the next PTO (probe timeout) fires, ngtcp2 re-encodes the outstanding STREAM frame by copying from the freed buffer. An unauthenticated attacker who can query the resolver over DoQ triggers this simply by withholding ACKs, sending RESET_STREAM, and waiting for PTO; a spray of roughly 20 such queries can cause an abnormal server exit (denial of service), and the CVSS confidentiality score of High reflects possible leakage of freed heap memory into retransmitted packets. Only operators running Unbound 1.22.0–1.26.1 with DoQ support compiled in and enabled are affected; deployments without libngtcp2/DoQ are not exposed to this flaw. No public proof-of-concept is known and the issue is not on CISA KEV; it is also distinct from recent headlines about a separate Unbound DNSSEC validator flaw.

Do: Upgrade Unbound to the patched release from NLnet Labs as soon as it is available (anything beyond 1.26.1 after confirming the fix in the release notes/advisory). As interim mitigations, disable DoQ listeners or rebuild without '--with-libngtcp2', and restrict DoQ access (network ACLs, firewall) to trusted clients. Check your build configuration and whether UDP/QUIC DoQ endpoints are exposed externally, and monitor resolver processes for abnormal restarts.

6.5
  • NLnet Labs Unbound (DNS-over-QUIC builds, compiled with --with-libngtcp2) 1.22.0 through and including 1.26.1
large≈10,000–100,000 internet-reachable DoQ-enabled Unbound resolvers (estimated)
CVE-2026-80225
Unbounded-read DoS in NLnetLabs Unbound TCP/DoT lets one client stall a worker

NLnetLabs Unbound up to and including 1.26.0 has a degradation-of-service flaw in its TCP and DNS-over-TLS (DoT) reading procedure, which performs consecutive reads from a connection without any limit (CWE-770). An attacker who opens a TCP/DoT connection and continuously streams queries for distinct, uncached names faster than the server can write responses can monopolize a single worker's entire event loop for as long as its writes stay ahead of the drain. The attacker gains the ability to slow or stall DNS resolution handled by that worker, degrading availability only (CVSS 5.3, availability impact low, no confidentiality or integrity impact). All Unbound deployments with TCP or DoT service enabled are affected, including the many ISP, enterprise and firewall/router-bundled instances. No public proof-of-concept or known in-the-wild exploitation has been reported, and the issue is not on CISA's KEV list.

Do: Upgrade all Unbound instances to the first release after 1.26.0 as published by NLnetLabs (check the NLnetLabs advisory for the fixed version). As an interim mitigation, restrict which clients can reach the TCP/53 and DoT (853) listeners using access-control rules or firewall policy, and limit queries or connections per client where supported. Operators should monitor per-worker CPU and DNS response latency for signs of a single connection monopolizing an event loop.

5.3
  • NLnet Labs Unbound up to and including 1.26.0
masslikely >1M deployments worldwide (default resolver in OPNsense/pfSense and common at ISPs), with hundreds of thousands of internet-exposed instances per public…
CVE-2026-81634
Heap Buffer Overflow in NLnet Labs Unbound DNS Resolver via Crafted DNS Responses

NLnet Labs Unbound, up to and including version 1.26.0, contains a heap buffer overflow (CWE-122) in its RRSet canonicalisation routine, where the buffer length check fails to include the first owner name. The flaw is triggered when the resolver processes a maximum-length (255-character) query name together with a large DNS response received over TCP, causing the heap buffer to overflow. A malicious actor operating a hostile authoritative name server, or an attacker able to tamper with a DNS response in transit, can trigger the condition; because canonicalisation happens before DNSSEC validation, DNSSEC does not protect affected deployments. Per the CVSS vector, the impact is availability: the resolver process can crash, producing denial of service for the clients and networks that depend on it. Anyone running Unbound as a recursive resolver or caching forwarder at version 1.26.0 or earlier is affected; no public proof-of-concept or confirmed in-the-wild exploitation is currently known.

Do: Upgrade Unbound to a release newer than 1.26.0 as soon as NLnet Labs publishes the patched version, and monitor the vendor's advisory page for the exact fixed release. Because exploitation requires a malicious authoritative name server or an on-path attacker tampering with responses, treat upstream DNS traffic as untrusted in threat models and watch for unexplained resolver crashes or restarts as an indicator of attempted exploitation. Note that enabling or relying on DNSSEC validation does not mitigate this issue, since canonicalisation occurs before validation.

7.5
  • NLnet Labs Unbound up to and including 1.26.0
massplausibly millions of deployments worldwide, including on the order of hundreds of thousands of internet-exposed Unbound resolvers (estimate)
CVE-2026-81642
Heap buffer overflow in NLnet Labs Unbound DNSKEY digesting enables DoS and RCE

Unbound, NLnet Labs' widely used validating recursive DNS resolver, contains a buffer overflow (CWE-122) in the DNSSEC validator's DNSKEY digesting routine. A crafted DNSKEY record whose owner name uses a compression pointer back into its own RDATA overflows the digest buffer while the resolver is validating the zone. An attacker who controls a malicious authoritative zone and can cause a vulnerable Unbound resolver to query it can crash the service (denial of service) and, using attacker-controlled data, potentially achieve remote code execution on the resolver host. All Unbound deployments up to and including version 1.26.0 that perform DNSSEC validation are affected. No public proof-of-concept or confirmed in-the-wild exploitation is currently known, and the issue is not in CISA's KEV catalog.

Do: Upgrade Unbound to the patched release announced by NLnet Labs (any version beyond 1.26.0 containing the fix) as soon as it is available, and confirm the running version with 'unbound -V'. Until patching, restrict recursion to trusted clients, monitor NLnet Labs' advisory for fixed versions and workarounds, and treat unexplained resolver crashes or restarts as suspicious.

9.1
  • NLnet Labs Unbound up to and including 1.26.0
massmillions of installations worldwide, including hundreds of thousands of internet-reachable Unbound resolvers seen in public scans
CVE-2026-82717
Heap Buffer Overflow in NLnet Labs Unbound DNS Resolver May Lead to RCE

NLnet Labs Unbound up to and including 1.26.0 contains a heap buffer overflow (CWE-122) in its DNS response processing. The flaw is triggered when CNAME synthesis during an upstream response forces the resolver to rewrite a max TTL value in the packet buffer; a compression pointer that points to the overwritten value invalidates the domain name, sending processing down an error path that does not properly advance the buffer position and overflows the heap. Because exploitation depends heavily on heap memory layout, the realistic outcome is progressive heap corruption that eventually crashes the resolver, but on specific systems and compilation options it could enable remote code execution. Any operator running Unbound 1.26.0 or earlier, including resolvers embedded in distributions, appliances, and ISP infrastructure, is affected. No public proof-of-concept is known, the issue is not in CISA's KEV, and no exploitation has been reported.

Do: Upgrade all Unbound deployments to the first release published after 1.26.0 (verify the fixed version in NLnet Labs' advisory) as soon as it is available. Interim mitigations include restricting recursion to trusted clients and treating any unexpected resolver crashes as potentially related. Note that per the vendor, remote code execution requires specific heap layouts and compilation options, so denial of service via resolver crash is the more likely impact.

8.4
  • NLnet Labs Unbound all versions up to and including 1.26.0
massmillions of deployments overall, with hundreds of thousands of Unbound resolver instances visible in public internet scans
CVE-2026-82720
Use-After-Free in NLnet Labs Unbound DNS-over-HTTPS Can Crash Resolver

NLnet Labs Unbound versions 1.12.0 through 1.26.0 contain a use-after-free (CWE-416) in the DNS-over-HTTPS code path, but only when the binary was compiled with the '--with-libnghttp2' option. When a failure occurs on one DoH stream - such as an RPZ rule dropping a query or session jostling under heavy client traffic - the entire DoH session is torn down without properly accounting for the other streams in that session, resulting in use-after-free accesses. An attacker who can satisfy the prerequisites (an RPZ drop rule in place or heavy client traffic) can trigger the flaw with a single DoH connection and appropriate traffic; the reads are not attacker-controlled and typically lead only to early returns, but a hardened allocator can detect the invalid access and deliberately terminate the process, causing denial of service. Only operators running DoH-enabled Unbound builds are affected, and confidentiality and integrity are not impacted. No public proof-of-concept or in-the-wild exploitation is known and the flaw is not in CISA KEV; it is distinct from the separately headlined Unbound DNSSEC validator RCE issue.

Do: Check whether your unbound binary was built with '--with-libnghttp2' (visible via 'unbound -V'); if so, upgrade to the newest NLnet Labs release after 1.26.0 that contains the fix. As interim mitigation, avoid RPZ 'drop' actions on DoH-facing instances or terminate DoH in a front-end proxy in front of unbound, and run unbound under a supervisor (e.g., systemd with automatic restart) so a triggered crash results only in a brief outage.

5.9
  • NLnet Labs Unbound 1.12.0 through 1.26.0 (inclusive), when compiled with '--with-libnghttp2' for DNS-over-HTTPS support
largelikely tens of thousands of DoH-enabled Unbound deployments (order of magnitude 10k-100k systems)
CVE-2026-85501
Algorithmic Complexity DoS (ReTrap) in NLnet Labs Unbound DNSSEC Validation

CVE-2026-85501 covers the 'ReTrap' class of algorithmic complexity attacks against DNSSEC validation in NLnet Labs Unbound up to and including 1.26.0, where maliciously crafted DNS data forces the resolver into disproportionately expensive validation work. An attacker who controls a zone (or can make a client trigger lookups into one) can abuse several mechanisms: TagTrap (floods of mismatched DNSKEY, RRSIG and DS records against the (Zone, Algo, KeyTag) matching logic), DelegationTrap (deeply nested domains that require iterative DNSKEY/DS validation from the root downward), NsecTrap (large numbers of invalid NSEC records that each must be validated), and AdditionalTrap (Unbound by default validates the ADDITIONAL section, which can be padded to waste validation resources). The result is CPU/resource exhaustion and degraded DNS resolution, i.e., denial of service; the assigned CVSS 5.3 (AV:N/AC:L/PR:N/UI:N, A:L) indicates no confidentiality or integrity impact. Any Unbound deployment performing DNSSEC validation is affected, including ISP, enterprise and OS-bundled resolvers. No public proof-of-concept or confirmed in-the-wild exploitation is known and it is not in CISA KEV; note that some media coverage describes a critical/RCE Unbound flaw, but the documented impact for this CVE is availability only.

Do: Upgrade Unbound to a release newer than 1.26.0 once NLnet Labs publishes the patched version, and check the vendor advisory for the exact fixed release. Interim mitigations: restrict recursion (access-control) to trusted clients, apply query/response rate limiting, and consider disabling validation of the ADDITIONAL section if operationally feasible; only resolvers with DNSSEC validation enabled are affected. Monitor resolver CPU and query patterns for signs of complexity-based DoS.

5.3
  • NLnet Labs Unbound up to and including 1.26.0
mass≈ millions of resolver deployments worldwide, with roughly 100k+ internet-exposed Unbound instances
Full article800 words · extracted from thehackernews.com · click to collapse

Swati KhandelwalSep 17, 2026Vulnerability / DNS Security

Every release of the Unbound DNS resolver before 1.26.1 has a critical heap overflow in its DNSSEC validator, maintainer NLnet Labs said in an advisory on Wednesday.

An attacker who controls a malicious zone and queries a vulnerable resolver can trigger it, enabling remote code execution.

Unbound 1.26.1, released the same day, fixes the bug, tracked as CVE-2026-81642, along with eight other flaws. One of the eight, CVE-2026-82717, is a heap corruption bug in CNAME synthesis reported by Ben Morris of Anthropic. It could also lead to remote code execution "under certain systems and compilation options," NLnet Labs said.

NLnet Labs has not reported exploitation of either bug, and CISA's entry for CVE-2026-81642 marked exploitation as "none" on Wednesday.

NLnet Labs rates the DNSKEY flaw Critical, with a CVSS score of 4.0 (9.1), and its scoring lists a network attack vector requiring no privileges or user interaction. NVD listed the CVE as "Awaiting Analysis" on Wednesday, so the 9.1 is the maintainer's own score.

The overflow happens while the validator digests a DNSKEY record whose owner name is a compression pointer into the record's own data. The impact NLnet Labs lists is denial of service, with remote code execution possible "through attacker controlled data."

Every version up to and including 1.26.0 is affected. That includes 1.25.2, the security release from July, and 1.26.0, released on August 4. The Critical validator bug NLnet Labs fixed in May, CVE-2026-33278, is a different flaw, and the 1.25.1 update that fixed it does not fix this one.

NLnet Labs attaches no configuration condition to that range, and it has not said whether a resolver with DNSSEC validation switched off is reachable.

Upgrade or Patch

Unbound 1.26.1 is available as source, with checksums and a PGP signature, and as Windows installers and binaries. If you cannot upgrade, the advisory gives two ways to patch the source tree:

  • Apply the minimal patch or the complete patch for CVE-2026-81642 alone with patch -p1, for example patch -p1 < patch_CVE-2026-81642_with.diff, then run make install.
  • Apply the combined patch for all nine fixes instead. A minimal version of it also exists.

NLnet Labs says the standalone patches for CVE-2026-81642 and CVE-2026-82717 have been tested and work on 1.26.0. Its security policy is to patch the latest released version.

Debian's security tracker listed unbound 1.26.1-1 as fixed in unstable on Thursday, with the bookworm, trixie, and forky branches still listed as vulnerable.

The Nine Fixes

The release notes name nine CVEs. The table gives each one's affected range and trigger condition in NLnet Labs' wording.

CVE Severity Affected versions Needs Impact
CVE-2026-81642 Critical Up to and including 1.26.0 An attacker who controls a malicious zone and queries the resolver Denial of service, possible remote code execution
CVE-2026-82717 High Up to and including 1.26.0 CNAME synthesis during an upstream response. Code execution "under certain systems and compilation options" Denial of service, possible remote code execution
CVE-2026-81634 High Up to and including 1.26.0 A 255-length query name with a large TCP response, from a malicious name server or a tampered response Denial of service
CVE-2026-77955 Medium 1.13.2 up to and including 1.26.0 Zones with zonemd-check: yes located below, but not at, a trust anchor Denial of service, a window where tampered zone data is served before the ZONEMD check
CVE-2026-78227 Medium 1.22.0 up to and including 1.26.0 Built with --with-libngtcp2 and quic-port configured Denial of service
CVE-2026-80225 Medium Up to and including 1.26.0 A sustained stream of distinct uncached names over one TCP or DoT connection Degradation of service
CVE-2026-82720 Medium 1.12.0 up to and including 1.26.0 Built with --with-libnghttp2 and https-port configured. NLnet Labs calls the impact limited Denial of service
CVE-2026-85501 Medium Up to and including 1.26.0 Malicious zones serving the ReTrap algorithmic complexity attacks (TagTrap, DelegationTrap, NsecTrap, AdditionalTrap) Degradation of service
CVE-2026-77860 Low 1.20.0 up to and including 1.26.0 The serve-expired code path, bypassing a countermeasure added for DNSBomb Could take part in a pulsing DoS amplification attack

The ReTrap fix also changes a default: val-clean-additional is now off, so Unbound no longer validates DNSSEC data in the additional section of a response by default.

The bug was reported to NLnet Labs on August 11 by Yuqi Qiu, who found it with Xiang Li at Nankai University's AOSP Lab, according to the timeline in the CVE record. NLnet Labs shared a patch the next day and the reporter verified it on August 13. The fix shipped five weeks later in the 1.26.1 batch.

NLnet Labs' security policy says that for issues not yet public it aims to release fixes "in the order of weeks."

Found this article interesting? Follow us on Google News, Twitter and LinkedIn to read more exclusive content we post.

Text extracted automatically; images, tables and formatting may be missing. Original: https://thehackernews.com/2026/09/critical-unbound-dnssec-validator-flaw.html