CVE-2026-110673
NieznaneStreszczenie
W bibliotece Cpanel::JSON::XS dla Perla (wersje przed 4.80) opcja allow_tags w decode_tag pozwala na wyczerpanie stosu poprzez zagnieżdżone wartości tagowane. Zagnieżdżenie tagów nie jest liczone względem max_depth, więc ciąg znaków "(" może wyczerpać stos C i wywołać nieprzechwytywalny błąd segmentacji.
Ocena ryzyka
Niezaufany JSON może spowodować awarię procesu (odmowę usługi) niezależnie od ustawionego limitu max_depth.
Rekomendacja
Zaktualizuj Cpanel::JSON::XS do wersji 4.80 lub nowszej i unikaj włączania allow_tags przy przetwarzaniu niezaufanych danych.
Inne podatności w Cpanel::JSON::XS
Zobacz wszystkie- CVE-2026-110688Nieznane
Cpanel::JSON::XS w wersjach od 4.51 przed 4.80 dla Perla pozwala na kwadratowe zużycie CPU przez ponowną walidację pozostałego bufora dla każdej wartości w incr_parse. Przy pierwszym bajcie nie-ASCII w łańcuchu dekoder waliduje UTF-8 od tego miejsca do końca wejścia, a każda wartość ponownie waliduje resztę bufora.
- CVE-2026-110687Nieznane
Cpanel::JSON::XS w wersjach od 4.43 przed 4.80 dla Perla błędnie porządkuje klucze będące łańcuchami bajtów podczas kodowania kanonicznego w utf16_cmp. Gdy dowolny klucz w hashu ma flagę UTF-8, wszystkie klucze są dekodowane jako UTF-8 do porównania, w tym klucze bajtowe zapisywane jako znaki Latin-1.
- CVE-2026-110686Nieznane
Cpanel::JSON::XS w wersjach przed 4.80 dla Perla używa zwolnionych callbacków filtrów, gdy filtr usuwa się podczas dekodowania w decode_hv. Dekodowanie kopiuje callbacki filter_json_object i filter_json_single_key_object bez referencji, więc filtr usuwający ostatni filtr jednokluczowy zwalnia tablicę callbacków w trakcie użycia.
- CVE-2026-110685Nieznane
Cpanel::JSON::XS w wersjach przed 4.80 dla Perla wycieka zdekodowane argumenty wartości tagowanej, gdy jej metoda THAW umiera w decode_tag. Przy allow_tags nazwa klasy i tablica argumentów są zwalniane dopiero po powrocie THAW, więc śmierć THAW pozostawia całą strukturę argumentów zaalokowaną.
- CVE-2026-110684Nieznane
Cpanel::JSON::XS w wersjach od 3.0202 przed 4.80 dla Perla wycieka pamięć i zatrzymuje przeciążone obiekty podczas kodowania wartości jako łańcuchów w encode_stringify. Dla obiektu tablicy lub hasha z przeciążeniem "" (a od 4.20 także obiektu skalarnego) pobierana jest dodatkowa referencja, która nigdy nie jest zwalniana.
- CVE-2026-110682Nieznane
Cpanel::JSON::XS w wersjach od 4.42 przed 4.80 dla Perla pozwala, aby podział wejścia na fragmenty zmieniał zdekodowaną wartość liczb najwyższego poziomu w incr_parse. Bajty 12 dekodują się jako jedna wartość przy wspólnym odczycie, ale jako 1 i 2 przy podziale na dwa odczyty.
- CVE-2026-110681Nieznane
Cpanel::JSON::XS w wersjach przed 4.80 dla Perla używa skalarów interpretera nadrzędnego z obiektu parsera sklonowanego do nowego ithread. Callbacki i bufor parsowania przyrostowego są kopiowane jako surowe wskaźniki, więc parser dziecka używa i później zwalnia skalary należące do rodzica.
- CVE-2026-110680Nieznane
Podatność w bibliotece Cpanel::JSON::XS dla Perla (wersje 4.20 do 4.80) polega na zapisie poza granicami bufora podczas kodowania kanonicznego hasha powiązanego (tied) lub współdzielonego (threads::shared), gdy liczba kluczy wzrośnie między pierwszym a drugim przebiegiem. Może to uszkodzić pamięć stosu lub sterty i doprowadzić do awarii procesu.
- CVE-2026-110678Nieznane
W bibliotece Cpanel::JSON::XS dla Perla (wersje przed 4.80) funkcja incr_parse buforuje dane wejściowe ponad limit max_size, ponieważ porównuje postęp parsowania, a nie długość bufora. Fragment zaczynający się od bajtu NUL lub wywołanie w kontekście void omija sprawdzenie, co pozwala na nieograniczony wzrost bufora i wyczerpanie pamięci.
- CVE-2026-110677Nieznane
W bibliotece Cpanel::JSON::XS dla Perla (wersje 4.28 do 4.80) opcja dupkeys_as_arrayref powoduje wyciek tablicy zbierającej wartości zduplikowanego klucza w decode_hv — dodatkowa referencja nie jest zwalniana, więc tablica i jej wartości przeżywają zdekodowaną strukturę. Wyciek następuje także przy błędzie dekodowania po napotkaniu zduplikowanego klucza.
Oryginalny opis (angielski, źródło NVD)
Cpanel::JSON::XS versions before 4.80 for Perl allow stack exhaustion via nested tagged values under allow_tags in decode_tag. With allow_tags, "(" starts a tagged value. Its tag and value are decoded recursively, and each can start another tagged value. Unlike arrays and objects, this nesting is not counted against max_depth. A run of "(" bytes exhausts the C stack and triggers an uncatchable segmentation fault regardless of max_depth.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

