CVE-2026-110684
NieznaneStreszczenie
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.
Ocena ryzyka
Wielokrotne kodowanie danych zawierających takie wartości powoduje nieograniczony wzrost pamięci procesu.
Rekomendacja
Zaktualizuj Cpanel::JSON::XS do wersji 4.80 lub nowszej.
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-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.
- CVE-2026-110676Nieznane
W bibliotece Cpanel::JSON::XS dla Perla (wersje przed 4.80) z opcją allow_bignum liczby w notacji wykładniczej są kodowane jako pełne liczby dziesiętne, co może prowadzić do wyczerpania pamięci. Niewielki tekst, np. [1e30000000], może zostać zakodowany do około 30 MB, ponieważ wykładnik nie jest ograniczany.
Oryginalny opis (angielski, źródło NVD)
Cpanel::JSON::XS versions from 3.0202 before 4.80 for Perl leak memory and retain overloaded objects when encoding values as strings in encode_stringify. encode_stringify writes a value in its string form under allow_stringify, under convert_blessed for objects without TO_JSON, and under allow_bignum. For an array or hash object with a "" overload, and from 4.20 a scalar object, it takes an extra reference that is never released, so the object and everything it references are never freed. From 4.10 it also never frees its copy of the string. Repeatedly encoding data that contains such values grows process memory without bound.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

