CVE-2026-47180
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
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.
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.5 lub nowszej, która zawiera poprawkę zapobiegającą nadmiernej rekurencji.
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-48045Średnie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
Zeroconf is a pure Python implementation of multicast DNS service discovery. Prior to 0.149.5, DNSIncoming._decode_labels_at_offset recurses once per DNS-name compression pointer, and a single mDNS packet carrying chained pointers can trigger a RecursionError that escapes DNSIncoming.__init__, causing sustained CPU burn, log flooding, and degraded mDNS-dependent features for unauthenticated hosts on the local link over UDP/5353 (224.0.0.251 / ff02::fb). This issue is fixed in version 0.149.5.

