CVE-2026-81642 / CVE-2026-82717: NLnet Labs Unbound, a self-referencing DNSSEC compression pointer overflows the validator's digest buffer, reaching remote code execution (CVSS4.0 9.1 and 8.4)
A malicious zone Unbound is only asked to resolve can overflow its DNSSEC validator's digest buffer
Defender actions
- Patch every Unbound resolver at 1.26.0 or older to 1.26.1 now, including resolvers that do not validate DNSSEC: NLnet Labs lists CVE-2026-82717 for every version up to 1.26.0 with no validation precondition.
Analysis
NLnet Labs released Unbound 1.26.1 as a security release on 2026-09-16, fixing nine vulnerabilities in the widely deployed open-source validating and recursive DNS resolver. It rates CVE-2026-81642 critical and CVE-2026-82717 high, and among the others another high-rated flaw is a possible heap buffer overflow during DNSSEC canonicalization (NLnet Labs via oss-security, 2026-09-16). CVE-2026-81642 and CVE-2026-82717 affect every version up to and including 1.26.0 (NLnet Labs, 2026-09-16; NLnet Labs, 2026-09-16). CVE-2026-81642 (CVSS4.0 9.1, the score of the CVE record NLnet Labs published as numbering authority (ENISA EUVD, 2026-09-16), whose vector NLnet Labs links from its advisory (NLnet Labs, 2026-09-16), restated by NCSC Switzerland (NCSC Switzerland, 2026-09-18); found by Yuqi Qiu and Xiang Li of Nankai University's AOSP Lab) sits in the DNSSEC validator: a DNSKEY record whose owner name carries a compression pointer that references back into its own RDATA can overflow the digest buffer during DNSKEY digesting, and NLnet Labs states "remote code execution is possible through attacker controlled data", triggered simply by having a vulnerable Unbound query a zone the attacker controls (NLnet Labs, 2026-09-16). CVE-2026-82717 (CVSS4.0 8.4 from NLnet Labs' vector (NLnet Labs, 2026-09-16); found by Ben Morris of Anthropic) is a companion bug in CNAME synthesis: when Unbound rewrites a maximum-TTL value into the packet buffer during upstream-response processing, a compression pointer that now references the overwritten, invalidated domain name sends the code down an error path that fails to advance the buffer position correctly, producing a heap overflow NLnet Labs describes as "heavily reliant on heap memory layout" and capable of remote code execution "under specific systems and compilation options" (NLnet Labs, 2026-09-16). NCSC Switzerland's advisory on CVE-2026-81642 records the exploitation status as unknown and notes the operative precondition plainly: "resolver must have DNSSEC validation active, and query routing must allow the attacker's malicious DNS zone to be parsed" (NCSC Switzerland, 2026-09-18); in analyst judgement that is a normal condition for any DNSSEC-validating resolver doing open recursive resolution against the internet, not an edge case.
Triage: ordinary DNSSEC validation failures (a misconfigured zone, an expired signature) produce a SERVFAIL response and a logged validation error, not a resolver crash; an unbound worker process terminating or restarting during or immediately after resolving a specific external zone is the discriminator that separates this from routine DNSSEC validation noise.
Cited evidence
A DNSKEY with an owner compression pointer to its own RDATA can overflow the digest buffer. Remote code execution is possible through attacker controlled data. An adversary can exploit the vulnerability by controlling a malicious zone and querying a vulnerable Unbound.
Since this is heavily reliant on heap memory layout, results are memory corruption that eventually leads to a crash and under specific systems and compilation options remote code execution.
Prerequisites: Resolver must have DNSSEC validation active, and query routing must allow the attacker's malicious DNS zone to be parsed.
Updates3
NLnet Labs rates CVE-2026-81642 critical and CVE-2026-82717 high in its release announcement, and 1.26.1 fixes nine vulnerabilities rather than the two named earlier (NLnet Labs via oss-security, 2026-09-16). The CVSS 4.0 score of 9.1 for CVE-2026-81642 is the score of NLnet Labs' own vector (NLnet Labs, 2026-09-16), which NCSC Switzerland restates (NCSC Switzerland, 2026-09-18). The 8.4 given earlier for CVE-2026-82717 was withdrawn here as unsourced; the 2026-10-11 correction restores it from NLnet Labs' own vector.
NCSC Switzerland states the DNSSEC-validation precondition for CVE-2026-81642 only (NCSC Switzerland, 2026-09-18). NLnet Labs lists CVE-2026-82717 for "Unbound up to and including version 1.26.0" and names no validation precondition (NLnet Labs, 2026-09-16), so the instruction to patch is no longer limited to validating resolvers: every Unbound at 1.26.0 or older needs 1.26.1. NLnet Labs rates CVE-2026-82717 High with the CVSS 4.0 vector AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:U (NLnet Labs, 2026-09-16), which scores 8.4, so the 8.4 withdrawn on 2026-09-30 is restored.
The CVSS 4.0 score of 9.1 for CVE-2026-81642 was attributed to NCSC Switzerland. It is NLnet Labs' own: NLnet Labs rates the flaw Critical and links its CVSS 4.0 vector (NLnet Labs, 2026-09-16), and the CVE record NLnet Labs published as numbering authority scores it 9.1 (ENISA EUVD, 2026-09-16), and NCSC Switzerland restates that score (NCSC Switzerland, 2026-09-18). The headline said a malicious zone could point the validator at attacker-controlled memory; NLnet Labs describes a DNSKEY whose owner compression pointer references its own RDATA overflowing the digest buffer, with "remote code execution is possible through attacker controlled data" (NLnet Labs, 2026-09-16).
Sources7
Revision history
- Published 2026-09-19T0409Z-intel
- Correction 2026-09-30T0639Z-audit
The CVSS 4.0 score of 8.4 for CVE-2026-82717 had no citable source and is withdrawn from the scores and the title. The 9.1 for CVE-2026-81642 is cited to NCSC Switzerland, and NLnet Labs' own release announcement now supplies the severities, critical and high, and shows that 1.26.1 fixes nine flaws, not two. The advisories are treated as one assessor, NLnet Labs, restated by NCSC Switzerland.
Changed: sources cves body title summary classification verification sourcing_note
- Correction 2026-10-11T1307Z-audit
NCSC Switzerland states a DNSSEC-validation precondition for CVE-2026-81642 only, and NLnet Labs lists CVE-2026-82717 for every Unbound up to 1.26.0 with no such precondition, so the patch instruction is no longer scoped to validating resolvers: summary, action and takeaway say to patch every Unbound at 1.26.0 or older. CVE-2026-82717's CVSS 4.0 score of 8.4, withdrawn on 2026-09-30 as unsourced, is restored: it is the score of the vector NLnet Labs publishes as the CVE's numbering authority, and the 2026-09-30 section now says so. The action no longer claims a reachability path, and the main analysis gains an Exposure line with the affected range and NCSC-CH's preconditions.
Changed: summary actions cves sources body
- Correction 2026-10-20T0835Z-audit
The CVSS 4.0 score of 9.1 for CVE-2026-81642 is NLnet Labs' own, published as the CVE's numbering authority, and NCSC Switzerland restates it; it had been attributed to NCSC Switzerland. The headline now states the sourced mechanism, a digest-buffer overflow in the DNSSEC validator, instead of the validator being pointed at attacker-controlled memory. The title gives both scores again, 9.1 and 8.4.
Changed: body cves headline sources sourcing_note title
AI-generated · no human review · this permalink is the shareable record for the finding · verify operationally critical claims against the linked primary source.