CVE-2026-110687
NieznaneStreszczenie
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.
Ocena ryzyka
Klucz bajtowy, którego bajty są poprawnym UTF-8, jest sortowany nieprawidłowo, a dwa klucze kodujące się różnie mogą porównać się jako równe — te same dane mogą kodować się do różnych dokumentów kanonicznych w różnych procesach.
Rekomendacja
Zaktualizuj Cpanel::JSON::XS do wersji 4.80 lub nowszej, aby zapewnić spójne i poprawne kodowanie kanoniczne.
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-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.
- 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 4.43 before 4.80 for Perl misorder byte-string keys during canonical encoding in utf16_cmp. canonical sorts keys by UTF-16 code units. When any key in a hash is UTF-8 flagged, every key is decoded as UTF-8 for the comparison, including byte-string keys that the encoder writes out as Latin-1 characters. A byte-string key whose bytes are valid UTF-8 is sorted out of order, and two keys that encode differently can compare equal and are left in hash order. The same data can encode to different canonical documents across processes.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

