CRITICAL🇬🇧 English

CVE-2026-33278

Use-after-free w validatorze DNSSEC Unbound — RCE i DoS

CVSS 9.1v4.0pub. 2026-05-20upd. 2026-06-30

NLnet Labs Unbound w wersjach od 1.19.1 do 1.25.0 zawiera błąd w validatorze DNSSEC, który może prowadzić do odmowy usługi (DoS) lub zdalnego wykonania kodu (RCE). Podatność jest wyzwalana przez złośliwą, podpisaną strefę DNS i nie wymaga żadnego uwierzytelnienia ani interakcji użytkownika.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Gdy zapytania DS wymagają zawieszenia walidacji z powodu wyczerpania budżetu obliczeniowego NSEC3, Unbound wykonuje głęboką kopię (deep copy) komunikatów odpowiedzi w celu zachowania ich przez zwolnieniem regionu pamięci. Błąd w przypisaniu struktury (struct-assignment bug) powoduje nadpisanie wskaźnika docelowego wskaźnikiem ze źródła. Po zwolnieniu regionu pamięci pod-zapytania, wznowiony validator wyłuskuje ten zwisający wskaźnik (dangling pointer), co skutkuje awarią procesu lub potencjalnie pozwala na wykonanie dowolnego kodu. Atakujący może wywołać ten błąd, kontrolując złośliwą podpisaną strefę DNS i kierując zapytania do podatnego serwera Unbound.

Skutki

Atakujący może doprowadzić do awarii (crash) serwera rozwiązywania nazw DNS, powodując odmowę usługi, lub — w sprzyjających warunkach — wykonać dowolny kod zdalnie (RCE) w kontekście procesu Unbound. Podatność dotyczy zarówno samego systemu, jak i systemów, dla których Unbound pełni rolę resolvera.

Mitygacja

Należy zaktualizować Unbound do wersji 1.25.1, która zawiera poprawkę zachowującą prawidłowy wskaźnik podczas głębokiego kopiowania struktury danych. Szczegóły dostępne w poradniku producenta: https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-33278.txt

Kogo dotyczy

NLnet Labs Unbound w wersjach od 1.19.1 do 1.25.0 włącznie.

Uwagi

Podatność klasy use-after-free (CWE-416) oraz nieprawidłowego użycia wskaźnika po zwolnieniu zasobu (CWE-672). Mechanizm NSEC3 computational budget exhaustion, który jest warunkiem wyzwolenia błędu, został wprowadzony właśnie w wersji 1.19.1, co wyznacza dolną granicę podatnych wersji.

CVSS Vector
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/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Red
  • Nlnetlabs Unbound

    APP
    Nlnetlabs
    1.19.1 – 1.25.1 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCEDoSMemory
CWE
Referencje

Powiązane podatności

CVE-2019-25035CRITICAL9.8ten sam produkt

Unbound before 1.9.5 allows an out-of-bounds write in sldns_bget_token_par. NOTE: The vendor disputes that thi...

CVE-2019-25034CRITICAL9.8ten sam produkt

Unbound before 1.9.5 allows an integer overflow in sldns_str2wire_dname_buf_origin, leading to an out-of-bound...

CVE-2019-25032CRITICAL9.8ten sam produkt

Unbound before 1.9.5 allows an integer overflow in the regional allocator via regional_alloc. NOTE: The vendor...

CVE-2019-25033CRITICAL9.8ten sam produkt

Unbound before 1.9.5 allows an integer overflow in the regional allocator via the ALIGN_UP macro. NOTE: The ve...

CVE-2019-25038CRITICAL9.8ten sam produkt

Unbound before 1.9.5 allows an integer overflow in a size calculation in dnscrypt/dnscrypt.c. NOTE: The vendor...