Biblioteka cJSON w wersjach przed 1.7.11 zawiera podatność umożliwiającą dostęp poza granicami bufora (out-of-bounds access) podczas przetwarzania literałów tekstowych zawierających znak null (\x00). Podatność posiada krytyczny wynik CVSS 9.8 i może prowadzić do poważnych konsekwencji dla poufności, integralności i dostępności systemu.
▸ Pokaż oryginał (EN)
cJSON before 1.7.11 allows out-of-bounds access, related to \x00 in a string literal.
Podatność wynika z nieprawidłowej obsługi znaku null (\x00) w literałach tekstowych przez parser cJSON. Znak null jest tradycyjnie traktowany jako terminator ciągu znaków w języku C, co może powodować błędne obliczenie długości bufora lub nieprawidłowe indeksowanie pamięci. W rezultacie dochodzi do odczytu lub zapisu poza przydzielonym obszarem pamięci (CWE-125: out-of-bounds read, CWE-787: out-of-bounds write).
Atakujący może doprowadzić do nieautoryzowanego odczytu lub zapisu pamięci procesu, co w praktyce może skutkować ujawnieniem wrażliwych danych, uszkodzeniem pamięci, wykonaniem dowolnego kodu (RCE) lub awarią aplikacji.
Należy zaktualizować bibliotekę cJSON do wersji 1.7.11 lub nowszej. Użytkownicy Oracle TimesTen In-Memory Database powinni zastosować patche wskazane w biuletynie bezpieczeństwa Oracle (CPU October 2020) zgodnie z referencjami producenta.
cJSON w wersjach przed 1.7.11 (projekt DaveGamble/cJSON); podatność dotyczy również Oracle TimesTen In-Memory Database, w której cJSON jest komponentem zależnym.
Poprawka została wprowadzona w commicie 93688cb w repozytorium GitHub projektu cJSON. Szczegóły techniczne dostępne są w zgłoszeniu issue #337 w repozytorium DaveGamble/cJSON.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDavegamble Cjson
APPDavegamble< 1.7.11Oracle Timesten In Memory Database
APPOracle< 18.1.3.1.0
Powiązane podatności
Krytyczne przejęcie kontroli nad Oracle TimesTen In-Memory Database przez Kubernetes Operator
Out-of-bounds access w cJSON przez funkcję decode_array_index_from_pointer
Dostęp poza zakresem pamięci w cJSON związany z komentarzami wieloliniowymi
Buffer over-read w funkcji parse_string biblioteki cJSON
Buffer Over-Read w RSA BSAFE podczas parsowania danych ASN.1