Unbound DNSSEC Heap Overflow Puts Vulnerable Resolvers at Risk of Remote Code Execution
NLnet Labs patched CVE-2026-81642, a critical Unbound DNSSEC heap overflow before 1.26.1 that allows DoS or RCE via malicious DNSKEY. Upgrade now.
Text generated by artificial intelligence, published without human review. AI transparency
Illustrative image generated with AI
NLnet Labs has fixed a critical memory-corruption vulnerability in Unbound that can be triggered through a malicious DNS zone. The flaw affects every Unbound version before 1.26.1 and may allow denial of service or remote code execution on a vulnerable resolver.
Tracked as CVE-2026-81642, the vulnerability carries a CVSS 4.0 score of 9.1 and is classified as a heap-based buffer overflow under CWE-122. The CVE Program record was published and updated on September 16, 2026.
Unbound 1.26.1 contains the correction. It also fixes eight other CVEs, including a separate heap-corruption issue that may permit code execution in some environments.
A malicious DNSKEY record can corrupt heap memory
CVE-2026-81642 resides in Unbound’s DNSSEC validator, the component responsible for authenticating DNS data using cryptographic signatures and chains of trust.
The vulnerable condition is reached when Unbound processes a specially constructed DNSKEY record. Its owner name contains a DNS compression pointer directed into the same record’s RDATA rather than a valid external location. When the validator digests this malformed structure, it can write beyond the allocated heap buffer.
The attacker needs control of a malicious DNS zone and a way to make the targeted Unbound resolver query that zone. The attack is network-reachable and does not require credentials or user interaction.
A successful attempt can crash the resolver, causing denial of service. Because the overwritten memory contains attacker-controlled data, remote code execution is also considered possible. The complete CVSS 4.0 vector assigned by NLnet Labs is:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:U/U:Red
The affected range in the authoritative CVE Program record is Unbound from version 0 through all releases before 1.26.1. That includes 1.25.2 and 1.26.0, the latter released on August 4.
Upgrading to 1.25.1 is not sufficient. That release corrected CVE-2026-33278, a different critical DNSSEC-validator vulnerability, while CVE-2026-81642 remained present through 1.26.0.
No exploitation has been reported
NLnet Labs has not reported attacks exploiting CVE-2026-81642. Available CISA data also described its exploitation status as “none.” It has not been established that the vulnerability is in CISA’s Known Exploited Vulnerabilities catalog, and no KEV remediation deadline is known.
There are likewise no reported exploitation indicators for administrators to search for. That limits incident-response guidance to conventional resolver telemetry, including unexplained crashes, restarts, memory-corruption errors and suspicious query sequences involving unfamiliar zones.
The absence of known exploitation does not reduce the technical impact. A resolver may contact attacker-controlled authoritative infrastructure during normal DNS resolution, and the vulnerability can be reached without an authenticated connection to the Unbound service.
Yuqi Qiu, working with Xiang Li at Nankai University’s AOSP Lab, reported the defect to NLnet Labs on August 11. NLnet Labs supplied a patch the next day, and the reporter verified it on August 13. Both researchers are credited as finders.
Version 1.26.1 closes nine security flaws
CVE-2026-81642 is the most severe of nine vulnerabilities addressed in Unbound 1.26.1. Several others depend on specific build flags, protocol listeners or resolver configuration.
The second memory-safety concern is CVE-2026-82717, a high-severity heap-corruption flaw triggered during CNAME synthesis in an upstream response. It affects versions through 1.26.0 and can cause denial of service. Code execution may be possible on certain systems and with particular compilation options. No exploitation has been reported.
The remaining fixes are:
- CVE-2026-81634, rated 7.5, can crash versions through 1.26.0 when a 255-character query name is combined with a large TCP response from a malicious name server or a tampered response.
- CVE-2026-77955, rated 4.4, affects versions 1.13.2 through 1.26.0 when
zonemd-check: yesis configured below, but not at, a trust anchor. It can cause denial of service and briefly allow tampered zone data to be served before the ZONEMD check. - CVE-2026-78227, rated 6.5, affects versions 1.22.0 through 1.26.0 built with
--with-libngtcp2and configured withquic-port. Its reported impact is denial of service. - CVE-2026-80225, rated 5.3, allows service degradation through a sustained stream of distinct, uncached names sent over one TCP or DNS-over-TLS connection.
- CVE-2026-82720, rated 5.9, affects versions 1.12.0 through 1.26.0 built with
--with-libnghttp2and configured withhttps-port. It can produce a limited denial of service. - CVE-2026-85501, rated 5.3, concerns ReTrap algorithmic-complexity techniques, including TagTrap, DelegationTrap, NsecTrap and AdditionalTrap. Malicious zones can use them to degrade resolver performance.
- CVE-2026-77860 is a low-severity issue affecting versions 1.20.0 through 1.26.0. The
serve-expiredpath can bypass a DNSBomb countermeasure and contribute to a pulsing denial-of-service amplification attack.
As part of the ReTrap remediation, Unbound now disables val-clean-additional by default. Consequently, DNSSEC data in the additional section of a response is no longer validated by default.
Upgrade or apply the vendor patches
Administrators should install Unbound 1.26.1 rather than relying on configuration changes. NLnet Labs provides source code, checksums, a PGP signature, Windows installers and Windows binaries for the corrected release.
Operators unable to upgrade immediately can apply a source-tree patch. Available options include minimal and complete patches for CVE-2026-81642, as well as combined patches covering all nine vulnerabilities. An example installation sequence is:
patch -p1 < patch_CVE-2026-81642_with.diff
make install
NLnet Labs tested the standalone patches for CVE-2026-81642 and CVE-2026-82717 against Unbound 1.26.0. Compatibility with other release branches has not been specified.
Disabling DNSSEC validation should not be treated as a confirmed workaround. There is no established vendor guidance showing that this configuration change reliably prevents the vulnerable code path. The documented remedies are upgrading or patching.
Distribution packages may remain behind upstream
The presence of an upstream fix does not mean every operating-system repository already contains it. Debian listed unbound 1.26.1-1 as fixed in unstable on Thursday, while bookworm, trixie and forky were still marked vulnerable.
Administrators should inspect the actual package version installed on each resolver instead of relying solely on routine update status. Inventories should also cover appliances, embedded deployments, containers and DNS services maintained outside standard operating-system repositories.
Build and runtime settings require separate review. Deployments using --with-libngtcp2, --with-libnghttp2, quic-port, https-port, zonemd-check or serve-expired face exposure to additional flaws corrected in the same release.
Internet-facing recursive resolvers and systems processing queries influenced by untrusted users should receive priority. After patching, operators should confirm that the running daemon—not merely the package database—reports version 1.26.1 or an appropriately patched build.
Sources
This article is an original reworking based on the sources below.
- primary sourceCVE Program
- The Hacker News
CVEs covered in this article
- CVE-2026-33278Critical9.8NLnet 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 vuln
- CVE-2026-81634High7.5In NLnet Labs Unbound up to and including 1.26.0, a 255 length query name with a large TCP response can lead to a heap buffer overflow during the RRSet canonicalisation routine. This is caused by missing to add the first owner name into the buffer length check. A malicious actor operating a maliciou
- CVE-2026-78227Medium6.5NLnet Labs Unbound 1.22.0 up to and including 1.26.1, has a use-after-free vulnerability when compiled for DNS-over-QUIC support with '--with-libngtcp2'. Each DoQ stream owns an output buffer that holds the DNS response. ngtcp2's retransmission buffer keeps a shallow pointer into the output buffer f
- CVE-2026-82720Medium5.9NLnet Labs Unbound 1.12.0 up to and including 1.26.0 has a use-after-free vulnerability when compiled for DNS-over-HTTPs support with '--with-libnghttp2'. During failure code paths (i.e., RPZ drop query, jostle due to heavy traffic), a dropped DoH stream brings down the whole DoH session and does no
- CVE-2026-80225Medium5.3In NLnetLabs Unbound up to and including 1.26.0, a degradation of service vulnerability is present in the TCP/DoT reading procedure where there is no limit on consecutive reads. A malicious actor that can stream and sustain a rate of distinct uncached names over the TCP/DoT connection, monopolizes a
- CVE-2026-85501Medium5.3Novel vulnerabilities to launch algorithmic complexity attacks on DNSSEC have been researched under the term 'ReTrap'. These result in degradation of service when malicious zones are used to serve the algorithmic complexity vulnerabilities. NLnet Labs Unbound up to and including 1.26.0 is vulnerable
- CVE-2026-77955Medium4.4In NLnet Labs Unbound 1.13.2 up to and including 1.26.1, a vulnerability in ZONEMD configured zones (zonemd-check: yes) which are located below (but not at) a trust anchor allow for an attack window where (tampered with) zone contents are served (or stored to disk) prior to the ZONEMD integrity chec
- CVE-2026-77860Low3.7In NLnetLabs Unbound 1.20.0 up to and including 1.26.0, a vulnerability on the 'serve-expired' code path can cause a double decrement on the 'wait-limit' counter per client IP essentially bypassing one of the counter measures that was introduced for DNSBomb (CVE-2024-33655). A malicious actor can ex
- CVE-2026-81642In NLnet Labs Unbound up to and including 1.26.0, a vulnerability was found in the DNSSEC validator that enables denial of service and possible remote code execution as a result of digesting DNSKEYs. A DNSKEY with an owner compression pointer to its own RDATA can overflow the digest buffer. Remote c
- CVE-2026-82717In NLnet Labs Unbound up to and including 1.26.0, a vulnerability was found in that can progressively corrupt heap memory and under certain systems and compilation options could lead to remote code execution. The vulnerability starts when CNAME synthesis during an upstream response needs to enforce(
