CVE-2026-48045
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
Zeroconf przed wersją 0.149.12 zawiera podatność na wyczerpanie pamięci i nadmierne zużycie procesora. Nieuwierzytelnieni hosty w sieci lokalnej przez UDP/5353 mogą wysyłać spreparowane zapytania z ustawionym bitem TC, które są przechowywane w słownikach `_deferred` i `_timers` bez ograniczenia rozmiaru, co prowadzi do wyczerpania pamięci i kwadratowego wzrostu obciążenia CPU.
Ocena ryzyka
Ryzyko polega na możliwości przeprowadzenia ataku DoS na usługę Zeroconf, co może zakłócić działanie usług zależnych od mDNS w sieci lokalnej.
Rekomendacja
Zaleca się aktualizację biblioteki Zeroconf do wersji 0.149.12 lub nowszej, która zawiera poprawkę ograniczającą rozmiar list i zapobiegającą wyczerpaniu pamięci.
Inne podatności w Zeroconf
Zobacz wszystkie- CVE-2026-48487Średnie
W bibliotece Zeroconf przed wersją 0.149.16, funkcje _read_character_string i _read_string w src/zeroconf/_protocol/incoming.py przesuwają self.offset o zadeklarowaną przez atakującego wartość RDLENGTH bez sprawdzania jej względem self._data_len. Nieuwierzytelnione hosty w sieci lokalnej przez UDP/5353 mogą wysłać rekord TXT, HINFO lub A/AAAA z rdlength=65535 i zasilić DNSCache oraz ServiceInfo.properties obciętymi, kontrolowanymi przez atakującego parami klucz/wartość lub rekordami adresowymi.
- CVE-2026-47184Średnie
Zeroconf to czysta implementacja Python multicast DNS service discovery. Przed wersją 0.149.7, funkcja DNSCache._async_add wstawiała każdy rekord odpowiedzi do pamięci podręcznej bez ograniczeń, umożliwiając nieuwierzytelnionym hostom w sieci lokalnej przez UDP/5353 wysyłanie poprawnych odpowiedzi mDNS z unikalnymi nazwami, co prowadziło do wyczerpania pamięci, wolniejszego wyszukiwania w pamięci podręcznej i zakłócenia działania usług.
- CVE-2026-47183Średnie
Zeroconf to czysta implementacja Python multicast DNS service discovery. Przed wersją 0.149.6, funkcje DNSIncoming._log_exception_debug i metody deduplikacji wyjątków przechowywały nieograniczony słownik _seen_logs kluczowany przez komunikaty błędów kontrolowane przez atakującego, przechowując tracebacki z sys.exc_info(), które zawierały surowe bufory danych self.data. Umożliwiało to nieuwierzytelnionym hostom w sieci lokalnej przez UDP/5353 powodowanie wzrostu pamięci aż do wyczerpania pamięci lub zabicia procesu.
- CVE-2026-47180Średnie
Zeroconf przed wersją 0.149.5 zawiera podatność na błąd rekurencji w funkcji `DNSIncoming._decode_labels_at_offset`. Pojedynczy pakiet mDNS z łańcuchem wskaźników kompresji może wywołać wyjątek RecursionError, który ucieka z `DNSIncoming.__init__`, powodując ciągłe obciążenie CPU, zalewanie logów i degradację usług zależnych od mDNS dla nieuwierzytelnionych hostów w sieci lokalnej przez UDP/5353.
Oryginalny opis (angielski, źródło NVD)
Zeroconf is a pure Python implementation of multicast DNS service discovery. Prior to 0.149.12, AsyncListener.handle_query_or_defer retained every truncated TC-bit incoming query, each up to _MAX_MSG_ABSOLUTE = 8966 bytes, in self._deferred[addr] and armed a per-address timer in self._timers[addr] without capping the per-address list or distinct addr keys, allowing unauthenticated hosts on the local link over UDP/5353 (224.0.0.251 / ff02::fb) to spoof sources, grow _deferred and _timers, and cause memory exhaustion and quadratic CPU burn. This issue is fixed in version 0.149.12.

