CVE-2026-48487
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący w sieci lokalnej może manipulować danymi DNS i właściwościami usług, co może prowadzić do przekierowania ruchu lub innych ataków opartych na fałszywych rekordach.
Rekomendacja
Zaleca się aktualizację biblioteki Zeroconf do wersji 0.149.16, która zawiera poprawkę sprawdzającą długość danych przed ich przetworzeniem.
Inne podatności w Zeroconf
Zobacz wszystkie- 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.
- 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.16, _read_character_string and _read_string in src/zeroconf/_protocol/incoming.py advanced self.offset by attacker-declared RDLENGTH without checking it against self._data_len, allowing unauthenticated hosts on the local link over UDP/5353 (224.0.0.251 / ff02::fb) to send a TXT, HINFO, or A/AAAA record with rdlength=65535 and seed DNSCache and ServiceInfo.properties with truncated, attacker-shaped key/value or address records. This issue is fixed in version 0.149.16.

