Podatności Unbound
36 znanych podatności CVE w Unbound, przetłumaczonych i ocenionych.
- CVE-2026-50252Krytyczne
W bibliotece Unbound od wersji 1.4.22 do 1.25.1 stwierdzono podatność na zatruwanie pamięci podręcznej DNS. Problem wynika z deterministycznego przypisywania zakresów portów UDP do wątków roboczych przy włączonej opcji SO_REUSEPORT, co umożliwia atakującemu przewidzenie portu źródłowego i obniżenie entropii transakcji DNS.
- CVE-2026-42960Krytyczne
NLnet Labs Unbound do wersji 1.25.0 włącznie jest podatny na zatruwanie pamięci podręcznej poprzez promiscuous rekordy w sekcji autorytatywnej. Atakujący może wstrzyknąć rekordy inne niż NS (np. MX) wraz z rekordami adresowymi, które Unbound buforuje, co prowadzi do zatrucia pamięci podręcznej. Wersja 1.25.1 zawiera poprawkę odrzucającą rekordy adresowe z sekcji dodatkowej, jeśli nie są one jawnie związane z rekordami NS.
- CVE-2026-33278Krytyczne
NLnet Labs Unbound od wersji 1.19.1 do 1.25.0 ma podatność w walidatorze DNSSEC polegającą na błędzie przypisania struktury podczas głębokiego kopiowania, co prowadzi do wiszącego wskaźnika i potencjalnego wykonania kodu.
- CVE-2026-56444Średnie
W Unbound od wersji 1.20.0 do 1.25.1, przy konfiguracji 'serve-expired: yes' i 'serve-expired-client-timeout > discard-timeout > 0', logika discard-timeout nieprawidłowo aktualizuje licznik odpowiedzi, co może doprowadzić do odrzucania nowych klientów i degradacji usługi. Atakujący może to wykorzystać, wysyłając zapytania do wolnej strefy autorytatywnej.
- CVE-2026-56416Średnie
W NLnet Labs Unbound do wersji 1.25.1, podczas budowania kanonicznej formy RDATA dla zestawu rekordów RRSIG-covered PX/RP/MINFO/SOA, walidator oblicza adres drugiej osadzonej nazwy domeny jako 'datstart + dname_valid(datstart, ...)' i przekazuje go bezpośrednio do 'query_dname_tolower()' bez sprawdzania, czy druga nazwa faktycznie występuje w RDATA. Atakujący prowadzący autorytatywny serwer DNSSEC może dostarczyć rekord z brakującą drugą nazwą domeny (np. rekord SOA) i spowodować, że 'query_dname_tolower()' będzie przetwarzać nieaktualne bajty w buforze 'env->scratch_buffer', wychodząc poza jego alokację sterty, jeśli 'msg-buffer-size' został zmniejszony. Prowadzi to do przepełnienia bufora sterty.
- CVE-2026-55991Średnie
W Unbound od wersji 1.22.0 do 1.25.1, zdalny, nieuwierzytelniony klient może wywołać asercję w libngtcp2 (jeśli skompilowano z asercjami) i zakończyć proces Unbound przez pojedyncze połączenie DoQ i jedno zapytanie DNS. Problem wynika z błędnego przekazania wartości '-1' do funkcji libngtcp2.
- CVE-2026-55990Średnie
W Unbound od wersji 1.7.0 do 1.25.1, gdy w konfiguracji DNSCrypt jest więcej certyfikatów niż kluczy, Unbound wypełnia pozostałe sloty danymi '0xdb' z alokatora libsodium. Nieuwierzytelniony klient wysyłający datagram UDP ≥68 bajtów z pierwszymi 8 bajtami '0xdb' na port DNSCrypt może spowodować awarię serwera.
- CVE-2026-55717Średnie
W Unbound od wersji 1.10.0 do 1.25.1, przy włączonej opcji 'serve-expired: yes' i regule 'response-ip' lub 'rpz-cname-override', zdalny klient kontrolujący delegowaną domenę może spowodować awarię demona. Problem wynika z niespójności w logice obsługi aliasów CNAME w funkcji serve-expired-client-timeout.
- CVE-2026-55708Niskie
W Unbound od wersji 1.6.0 do 1.25.1, polecenia 'view_local_data' i 'view_local_datas' w 'unbound-control' tworzą gołą strefę lokalną dla widoku bez domyślnych stref chronionych (np. RFC 1918 reverse, AS112, .onion, .localhost). Powoduje to, że zapytania o te nazwy są kierowane do publicznego DNS zamiast odpowiadane lokalnie, omijając politykę lokalną.
- CVE-2026-54478Niskie
W NLnet Labs Unbound od wersji 1.18.0 do 1.25.1, gdy Unbound nasłuchuje na interfejsie 'proxy-protocol-port' z włączoną opcją 'answer-cookie: yes', serwerowe ciasteczko SipHash (RFC 9018) jest obliczane na podstawie adresu sieciowego proxy, a nie adresu klienta zadeklarowanego w PROXYv2. Oznacza to, że jedno ciasteczko uzyskane przez dany węzeł proxy jest ważne dla wszystkich źródeł zadeklarowanych przez to proxy. Atakujący spoza ścieżki może zebrać jedno ciasteczko za pomocą jednego legalnego zapytania, a następnie odtworzyć je pod dowolnym sfałszowanym źródłem, omijając mechanizmy DNS Cookie.
- CVE-2026-52863Średnie
W Unbound od wersji 1.25.0 do 1.25.1, poprawka umożliwiająca współpracę modułów 'respip' i 'dns64' tworzy płytką kopię nazwy widoku, co może prowadzić do uszkodzenia pamięci, gdy oryginalny właściciel nazwy widoku zostanie usunięty pod obciążeniem. Prawdopodobieństwo awarii jest niskie.
- CVE-2026-50251Średnie
W NLnet Labs Unbound do wersji 1.25.1 włącznie, gdy włączona jest opcja 'unwanted-reply-threshold', rekordy glue 0.0.0.0/::0 mogą powodować pętlę, która prowadzi do czyszczenia pamięci podręcznej. Atakujący kontrolujący delegację może wielokrotnie wywołać czyszczenie cache bez wysyłania spoofowanych pakietów.
- CVE-2026-50248Średnie
NLnet Labs Unbound w wersjach od 1.7.0 do 1.25.1 zawiera podatność, w której strefa auth/rpz z skonfigurowaną nazwą hosta primary, która rozwiązuje się do BOGUS A/AAAA, jest nadal uważana za możliwy punkt końcowy XFR. Złośliwy aktor, który może sfałszować rekord A/AAAA (bez ważnego RRSIG), staje się primary XFR i może zastąpić całą strefę lub politykę odpowiedzi resolwera.
- CVE-2026-50243Niskie
W Unbound od wersji 1.6.2 do 1.25.1, gdy skonfigurowano moduł 'respip' przed walidatorem wraz z regułą przekierowania 'response-ip' lub plikiem RPZ z wyzwalaczem RPZ-IP, procedura przepisywania nie sprawdza statusu bezpieczeństwa odpowiedzi upstream i może przepisać BOGUS A/AAAA na skonfigurowany IP operatora. Prowadzi to do otrzymania przez klienta odpowiedzi INSECURE NOERROR przepisanej na IP operatora. Atakujący może wykorzystać to do fałszowania odpowiedzi BOGUS A/AAAA.
- CVE-2026-50046Średnie
W Unbound od wersji 1.15.0 do 1.25.1, nazwa serwera TLS używana dla zapytań DoT jest przechowywana w strukturze 'serviced_query', ale także referencjonowana przez 'waiting_tcp'. Gdy struktura zostanie usunięta podczas uzgadniania TLS, a następnie wystąpi błąd, następuje dereferencja zwolnionego wskaźnika, co prowadzi do awarii demona.
- CVE-2026-50045Średnie
NLnet Labs Unbound w wersjach od 1.22.0 do 1.25.1 zawiera podatność, w której pojedyncze zapytanie klienta o głęboko zagnieżdżoną nazwę pod podpisem DNSSEC może spowodować wysłanie większej liczby pakietów upstream niż skonfigurowany limit 'max-global-quota'. To skutecznie omija zabezpieczenie ograniczające ruch amplifikacyjny.
- CVE-2026-46582Niskie
W NLnet Labs Unbound od 1.6.0 do 1.25.1 występuje podatność na replay wildcard RRset, która może być tymczasowo uznana za DNSSEC-secure na podstawie walidacji RRSIG i przechowana w cache. Późniejsza walidacja NSEC traktuje ją jako fałszywą, ale w międzyczasie inny wątek może użyć tego zestawu do odpowiedzi, podmieniając konkretny rekord na wildcard. Atak wymaga posiadania domeny z podpisem DNSSEC i rekordu CNAME wskazującego na rekord sąsiadujący z wildcardem.
- CVE-2026-44690Wysokie
W Unbound od wersji 1.7.0 do 1.25.1, niewystarczająca walidacja pola RRSIG.Labels w połączeniu z przedwczesnym zapisem do pamięci podręcznej podczas agresywnego przetwarzania NSEC (RFC 8198) prowadzi do zatrucia pamięci podręcznej. Pozwala to atakującemu kontrolującemu jedną delegowaną strefę na zatrucie dowolnych siostrzanych stref pod NSEC-podpisanymi domenami nadrzędnymi.
- CVE-2026-44687Niskie
W NLnet Labs Unbound od wersji 1.13.2 do 1.25.1 wykryto błąd off-by-one w logice 'harden-below-nxdomain', który powoduje, że strefy typu stub lub forward znajdujące się poniżej podpisanej strefy DNSSEC mogą być przesłonięte przez bezpieczną odpowiedź NXDOMAIN z nadrzędnej strefy. Skutkuje to ominięciem konfiguracji i brakiem kontaktu z skonfigurowaną strefą.
- CVE-2026-44621Średnie
W NLnet Labs Unbound do wersji 1.25.1 włącznie, aplikacje używające libunbound z włączoną opcją 'unwanted-reply-threshold' mogą zostać nagle zakończone, gdy próg zostanie osiągnięty, ponieważ funkcja 'libworker_alloc_cleanup' nie znajduje się na liście dozwolonych wywołań. Unbound sam w sobie nie jest podatny.
- CVE-2026-42955Niskie
W serwerze DNS Unbound w wersjach od 1.16.2 do 1.25.1 wykryto podatność typu 'ghost domain names', która pozwala atakującemu kontrolującemu strefę ghost na przedłużenie okna ghost domain o jeden skonfigurowany TTL dla rekordów glue A/AAAA. W konfiguracji z 'harden-referral-path: yes' atak nie wymaga zapytania klienta.
- CVE-2026-41637Niskie
W NLnet Labs Unbound od wersji 1.22.0 do 1.25.1 wykryto podatność w obsłudze zapytań DNS-over-QUIC (DoQ). Przedwcześnie zakończone zapytania DoQ nie są prawidłowo rozliczane, co prowadzi do zawyżenia liczby oczekujących odpowiedzi dla już przetwarzanych zapytań. Powoduje to degradację usługi rozwiązywania nazw dla nowych klientów.
- CVE-2026-40691Wysokie
W Unbound od wersji 1.9.0 do 1.25.1, podczas obsługi zapytań DNSCrypt przez TCP, procedura szyfrująca odpowiedź nie ogranicza długości odpowiedzi do rozmiaru bufora docelowego. Odpowiedź większa niż 65504 bajtów może spowodować zapis poza przydzieloną pamięcią, prowadząc do awarii resolwera (DoS). Wymaga włączenia obsługi DNSCrypt.
- CVE-2026-32665Wysokie
W Unbound 1.22.0 do 1.25.1, gdy włączony jest downstream DNS-over-QUIC (DoQ), pierwsze dwa dwukierunkowe strumienie na nowym połączeniu QUIC (stream_id 0 i 4) omijają limit 'quic-size' i alokują duże bufory po otrzymaniu tylko 2-bajtowego prefiksu długości. Zdalny klient może łatwo przekroczyć limit 'quic-size', powodując nadmierną alokację pamięci i odmowę usługi dla nowych klientów DoQ.
- CVE-2026-14586Średnie
NLnet Labs Unbound w wersjach od 1.22.0 do 1.25.1 w środowiskach DNS-over-QUIC z wysoką współbieżnością może ulec awarii z powodu asercji w libngtcp2 dotyczącej znaczników czasu monotonicznych. Unbound używał czasu rzeczywistego zamiast monotonicznego, co przy dużym obciążeniu powoduje przerwanie działania serwera.
- CVE-2026-44608Średnie
NLnet Labs Unbound od wersji 1.14.0 do 1.25.0 ma podatność niespójności blokad, która przy spełnieniu określonych warunków (wielowątkowość, przeładowanie RPZ XFR, strefa RPZ z wyzwalaczami 'rpz-nsip'/'rpz-nsdname') może prowadzić do use-after-free na stercie i awarii. Atakujący może wykorzystać podatność, jeśli warunki są spełnione. Unbound 1.25.1 zawiera poprawkę.
- CVE-2026-44390Średnie
NLnet Labs Unbound do wersji 1.25.0 włącznie zawiera podatność podczas obsługi odpowiedzi z bardzo dużymi zestawami rekordów (RRsets), które wymagają kompresji nazw. Złośliwe odpowiedzi upstream z bardzo dużymi RRsets, których rekordy nie mają wspólnego sufiksu powyżej domeny głównej, mogą spowodować, że Unbound spędzi znaczną ilość czasu na stosowaniu kompresji nazw w odpowiedziach downstream. Może to prowadzić do degradacji wydajności i ostatecznie do odmowy usługi w dobrze zorganizowanych atakach. Limit kompresji wprowadzony w wersji 1.21.1 nie uwzględniał przypadku, gdy rekordy nie mają wspólnego sufiksu powyżej domeny głównej, co powodowało pominięcie licznika kompresji. Poprawka w wersji 1.25.1 zwiększa licznik kompresji niezależnie od wyniku wyszukiwania w drzewie kompresji.
- CVE-2026-42959Wysokie
NLnet Labs Unbound do wersji 1.25.0 włącznie zawiera podatność na odmowę usługi w walidatorze DNSSEC, która może prowadzić do awarii procesu w przypadku złośliwych odpowiedzi upstream. Problem wynika z użycia niewłaściwego licznika do obliczania offsetów zapisu dla zestawów rekordów w sekcji ADDITIONAL. Atakujący kontrolujący domenę podpisaną DNSSEC może wywołać awarię pojedynczym zapytaniem.
- CVE-2026-42944Wysokie
Podatność w Unbound (wersje 1.14.0 do 1.25.0) powoduje przepełnienie sterty podczas kodowania wielu opcji NSID, DNS Cookie i EDNS Padding w pakiecie odpowiedzi. Błąd w obliczeniach rozmiaru pola EDNS prowadzi do zapisu poza przydzieloną pamięcią.
- CVE-2026-42923Średnie
NLnet Labs Unbound do wersji 1.25.0 włącznie ma podatność w walidatorze DNSSEC, gdzie kod konsultujący negatywną pamięć podręczną dla rekordów DS nie uwzględnia limitu obliczeń skrótu NSEC3 wprowadzonego w wersji 1.19.1.
- CVE-2026-42534Średnie
NLnet Labs Unbound w wersjach do 1.25.0 zawiera podatność w logice jostle, która może obniżyć wydajność rozwiązywania nazw. Duplikujące się zapytania mogą odświeżać znacznik czasu, uniemożliwiając logice jostle zastąpienie starych zapytań nowymi. Atakujący kontrolujący wolno odpowiadający serwer DNS może wykorzystać tę podatność do degradacji wydajności Unbound.
- CVE-2026-41292Wysokie
NLnet Labs Unbound do wersji 1.25.0 włącznie jest podatny na atak degradacji usługi związany z parsowaniem długich list przychodzących opcji EDNS. Przeciwnik wysyłający zapytania ze zbyt wieloma opcjami EDNS może zablokować wątki Unbound podczas parsowania i tworzenia wewnętrznych struktur danych dla tych opcji. Skoordynowane ataki mogą prowadzić do degradacji i/lub odmowy usługi. Unbound 1.25.1 zawiera poprawkę ograniczającą akceptowane przychodzące opcje EDNS do 100.
- CVE-2026-40622Wysokie
Unbound w wersjach od 1.16.2 do 1.25.0 jest podatny na atak typu 'ghost domain names', który może wydłużyć okno ghost domain o wartość TTL. Atak wymaga kontroli nad strefą ghost i możliwości wysłania zapytania do podatnego Unbounda. Łatka dostępna w wersji 1.25.1.
- CVE-2026-32792Średnie
NLnet Labs Unbound od wersji 1.6.2 do 1.25.0 włącznie ma podatność na odmowę usługi, gdy skompilowano z obsługą DNSCrypt. Złe zapytanie DNSCrypt może spowodować niedomiar bufora w procedurze odczytu pakietów, prowadząc do przepełnienia sterty.
- CVE-2024-1488Wysokie
W Unbound znaleziono podatność związaną z nieprawidłowymi domyślnymi uprawnieniami, umożliwiającą każdemu procesowi spoza grupy unbound modyfikację konfiguracji środowiska uruchomieniowego Unbound. Jeśli proces może połączyć się przez localhost na port 8953, może zmienić konfigurację usługi unbound.service. Ta wada pozwala nieuprzywilejowanemu atakującemu manipulować działającą instancją, potencjalnie zmieniając forwardery, umożliwiając śledzenie wszystkich zapytań przekazywanych przez lokalny resolver, a w niektórych przypadkach zakłócając rozwiązywanie nazw.
- CVE-2019-25031Średnie
Unbound przed wersją 1.9.5 pozwala na wstrzyknięcie konfiguracji w skrypcie create_unbound_ad_servers.sh po udanym ataku man-in-the-middle na sesję HTTP bez szyfrowania. Producent nie uważa tego za podatność samego Unbound, ponieważ skrypt jest wkładem społeczności, a nie częścią instalacji Unbound.

