Un overflow dell’heap in DNSSEC di Unbound espone i resolver vulnerabili al rischio di esecuzione di codice da remoto
Unbound 1.26.1 corregge CVE-2026-81642, overflow heap DNSSEC da 9,1 che permette DoS e RCE via zona malevola. Aggiornare subito.
Testo generato da intelligenza artificiale, pubblicato senza revisione umana. Trasparenza IA
Immagine illustrativa generata con AI
NLnet Labs ha corretto una vulnerabilità critica di corruzione della memoria in Unbound, attivabile tramite una zona DNS malevola. Il difetto interessa tutte le versioni di Unbound precedenti alla 1.26.1 e può consentire un denial of service o l’esecuzione di codice da remoto su un resolver vulnerabile.
Identificata come CVE-2026-81642, la vulnerabilità ha ottenuto un punteggio CVSS 4.0 pari a 9,1 ed è classificata come overflow di un buffer basato sull’heap secondo CWE-122. La scheda del CVE Program è stata pubblicata e aggiornata il 16 settembre 2026.
Unbound 1.26.1 contiene la correzione. Risolve inoltre altre otto CVE, tra cui un distinto problema di corruzione dell’heap che in alcuni ambienti può consentire l’esecuzione di codice.
Un record DNSKEY malevolo può corrompere la memoria dell’heap
CVE-2026-81642 risiede nel validatore DNSSEC di Unbound, il componente responsabile dell’autenticazione dei dati DNS tramite firme crittografiche e catene di trust.
La condizione vulnerabile si verifica quando Unbound elabora un record DNSKEY appositamente costruito. Il suo owner name contiene un puntatore di compressione DNS diretto all’RDATA dello stesso record, anziché a una posizione esterna valida. Quando il validatore analizza questa struttura malformata, può scrivere oltre i limiti del buffer allocato nell’heap.
L’attaccante deve avere il controllo di una zona DNS malevola e un modo per indurre il resolver Unbound preso di mira a interrogare quella zona. L’attacco è raggiungibile via rete e non richiede credenziali né interazione da parte dell’utente.
Un tentativo riuscito può mandare in crash il resolver, causando un denial of service. Poiché la memoria sovrascritta contiene dati controllati dall’attaccante, è considerata possibile anche l’esecuzione di codice da remoto. Il vettore CVSS 4.0 completo assegnato da NLnet Labs è:
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
L’intervallo interessato indicato nel record del CVE Program comprende Unbound dalla versione 0 fino a tutte le release precedenti alla 1.26.1. Sono incluse la 1.25.2 e la 1.26.0, quest’ultima rilasciata il 4 agosto.
L’aggiornamento alla 1.25.1 non è sufficiente. Quella release correggeva CVE-2026-33278, una diversa vulnerabilità critica del validatore DNSSEC, mentre CVE-2026-81642 è rimasta presente fino alla 1.26.0.
Non sono stati segnalati exploit
NLnet Labs non ha segnalato attacchi che sfruttino CVE-2026-81642. Anche i dati disponibili di CISA ne descrivono lo stato di sfruttamento come “nessuno”. Non è stato stabilito che la vulnerabilità faccia parte del catalogo Known Exploited Vulnerabilities di CISA e non è nota alcuna scadenza KEV per la remediation.
Non sono stati segnalati neppure indicatori di compromissione specifici che gli amministratori possano cercare. Le indicazioni per la risposta agli incidenti si limitano quindi alla telemetria convenzionale dei resolver, inclusi crash e riavvii inspiegabili, errori di corruzione della memoria e sequenze di query sospette che coinvolgono zone sconosciute.
L’assenza di casi di sfruttamento noti non riduce l’impatto tecnico. Durante la normale risoluzione DNS, un resolver può contattare infrastrutture authoritative controllate dall’attaccante e la vulnerabilità è raggiungibile senza una connessione autenticata al servizio Unbound.
Yuqi Qiu, insieme a Xiang Li presso l’AOSP Lab della Nankai University, ha segnalato il difetto a NLnet Labs l’11 agosto. NLnet Labs ha fornito una patch il giorno successivo e il segnalatore l’ha verificata il 13 agosto. Entrambi i ricercatori sono accreditati come scopritori.
La versione 1.26.1 chiude nove falle di sicurezza
CVE-2026-81642 è la più grave delle nove vulnerabilità risolte in Unbound 1.26.1. Diverse altre dipendono da specifici flag di compilazione, listener di protocollo o impostazioni del resolver.
Il secondo problema di sicurezza della memoria è CVE-2026-82717, una vulnerabilità ad alta gravità di corruzione dell’heap che si attiva durante la sintesi di un CNAME in una risposta upstream. Interessa le versioni fino alla 1.26.0 e può causare un denial of service. Su determinati sistemi e con specifiche opzioni di compilazione potrebbe essere possibile eseguire codice. Non sono stati segnalati casi di sfruttamento.
Le correzioni rimanenti sono:
- CVE-2026-81634, con un punteggio di 7,5, può mandare in crash le versioni fino alla 1.26.0 quando un query name di 255 caratteri viene combinato con una risposta TCP di grandi dimensioni proveniente da un name server malevolo o da una risposta manomessa.
- CVE-2026-77955, con un punteggio di 4,4, interessa le versioni dalla 1.13.2 alla 1.26.0 quando
zonemd-check: yesè configurato al di sotto, ma non in corrispondenza, di un trust anchor. Può causare un denial of service e consentire temporaneamente la distribuzione di dati di zona manomessi prima del controllo ZONEMD. - CVE-2026-78227, con un punteggio di 6,5, interessa le versioni dalla 1.22.0 alla 1.26.0 compilate con
--with-libngtcp2e configurate conquic-port. L’impatto segnalato è un denial of service. - CVE-2026-80225, con un punteggio di 5,3, consente il degrado del servizio attraverso un flusso prolungato di nomi distinti e non memorizzati nella cache inviati tramite un’unica connessione TCP o DNS-over-TLS.
- CVE-2026-82720, con un punteggio di 5,9, interessa le versioni dalla 1.12.0 alla 1.26.0 compilate con
--with-libnghttp2e configurate conhttps-port. Può causare un denial of service limitato. - CVE-2026-85501, con un punteggio di 5,3, riguarda le tecniche di complessità algoritmica ReTrap, tra cui TagTrap, DelegationTrap, NsecTrap e AdditionalTrap. Le zone malevole possono utilizzarle per degradare le prestazioni del resolver.
- CVE-2026-77860 è un problema a bassa gravità che interessa le versioni dalla 1.20.0 alla 1.26.0. Il percorso
serve-expiredpuò eludere una contromisura DNSBomb e contribuire a un attacco di amplificazione del denial of service a impulsi.
Nell’ambito della remediation di ReTrap, Unbound ora disabilita per impostazione predefinita val-clean-additional. Di conseguenza, i dati DNSSEC nella sezione additional di una risposta non vengono più validati per impostazione predefinita.
Aggiornare o applicare le patch del fornitore
Gli amministratori dovrebbero installare Unbound 1.26.1 anziché affidarsi a modifiche della configurazione. NLnet Labs mette a disposizione il codice sorgente, gli hash, una firma PGP, gli installer per Windows e i binari Windows della release corretta.
Gli operatori che non possono effettuare subito l’aggiornamento possono applicare una patch all’albero dei sorgenti. Sono disponibili patch minime e complete per CVE-2026-81642, oltre a patch combinate che coprono tutte e nove le vulnerabilità. Un esempio di sequenza di installazione è:
patch -p1 < patch_CVE-2026-81642_with.diff
make install
NLnet Labs ha testato le patch autonome per CVE-2026-81642 e CVE-2026-82717 con Unbound 1.26.0. La compatibilità con altri rami di release non è stata specificata.
La disattivazione della validazione DNSSEC non deve essere considerata una soluzione alternativa confermata. Non esistono indicazioni consolidate del fornitore che dimostrino come questa modifica della configurazione impedisca in modo affidabile il percorso di codice vulnerabile. Le correzioni documentate sono l’aggiornamento o l’applicazione della patch.
I pacchetti delle distribuzioni potrebbero essere ancora indietro
La disponibilità di una correzione upstream non significa che ogni repository del sistema operativo la contenga già. Giovedì Debian indicava unbound 1.26.1-1 come corretto in unstable, mentre bookworm, trixie e forky risultavano ancora vulnerabili.
Gli amministratori dovrebbero verificare la versione effettivamente installata su ogni resolver, senza affidarsi esclusivamente allo stato degli aggiornamenti ordinari. Gli inventari dovrebbero includere anche appliance, distribuzioni embedded, container e servizi DNS gestiti al di fuori dei repository standard del sistema operativo.
Le impostazioni di compilazione e di runtime richiedono una verifica separata. Le distribuzioni che utilizzano --with-libngtcp2, --with-libnghttp2, quic-port, https-port, zonemd-check o serve-expired sono esposte ad altre vulnerabilità corrette nella stessa release.
I resolver ricorsivi esposti a Internet e i sistemi che elaborano query influenzate da utenti non affidabili dovrebbero avere la precedenza. Dopo l’applicazione della patch, gli operatori dovrebbero verificare che sia il daemon in esecuzione — non soltanto il database dei pacchetti — a riportare la versione 1.26.1 o una build corretta equivalente.
Fonti
Questo articolo è una rielaborazione originale basata sulle fonti seguenti.
- fonte primariaCVE Program
- The Hacker News
CVE trattate in questo articolo
- CVE-2026-33278Critica9.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-81634Alta7.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-78227Media6.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-82720Media5.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-80225Media5.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-85501Media5.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-77955Media4.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-77860Bassa3.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(
