CVE-2026-110672
NieznaneStreszczenie
W bibliotece Cpanel::JSON::XS dla Perla (wersje przed 4.80) następuje wyciek zdekodowanego klucza obiektu odrzuconego z powodu zduplikowanego klucza lub braku dwukropka w decode_hv. Klucz w cudzysłowie o długości 24 lub więcej bajtów, zawierający znak nie-ASCII lub sekwencję ucieczki, nie jest zwalniany przy odrzuceniu obiektu.
Ocena ryzyka
Proces, który kontynuuje działanie po nieudanym dekodowaniu, zatrzymuje jeden klucz na każdy odrzucony dokument, co przy powtarzanych żądaniach może wyczerpać pamięć i spowodować odmowę usługi.
Rekomendacja
Zaktualizuj Cpanel::JSON::XS do wersji 4.80 lub nowszej i unikaj wielokrotnego dekodowania niezaufanych dokumentów w długo działającym procesie.
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 leak the decoded key of an object rejected for a duplicate key or a missing colon in decode_hv. A quoted key of 24 or more bytes, or one containing a non-ASCII byte or an escape sequence, is decoded into a new scalar. Nothing frees that scalar when the object is rejected for a missing ':' after the key or, from 4.09, for a duplicate key. Duplicate keys are an error unless allow_dupkeys, dupkeys_as_arrayref or relaxed is set. A process that keeps running after a failed decode retains one key per rejected document, with its size chosen by the sender. Repeated requests exhaust process memory.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

