CVE-2026-29036
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 36 - wyżej niż 36% wszystkich znanych CVE
Streszczenie
cJSON w wersjach od 1.5.0 do 1.7.19 zawiera podatność nieprawidłowo rozwiązywanego nazwy lub odniesienia w funkcji decode_pointer_inplace() w pliku cJSON_Utils.c, która pozwala nieuwierzytelnionym atakującym powodować, że operacje JSON Patch będą celować w niewłaściwe klucze obiektów, dostarczając spreparowane sekwencje ucieczki JSON Pointer (~0 lub ~1) w ścieżkach poprawek. Atakujący mogą przesyłać złośliwe dane wejściowe JSON Patch zgodne z RFC 6902 do aplikacji używających cJSONUtils_ApplyPatches() lub cJSONUtils_ApplyPatchesCaseSensitive(), aby po cichu uszkodzić dane lub usunąć niezamierzone klucze, potencjalnie omijając kontrolę autoryzacji w aplikacjach, które polegają na JSON Patch do modyfikacji danych z kontrolą dostępu.
Ocena ryzyka
Atakujący może manipulować danymi w aplikacji, co może prowadzić do uszkodzenia danych, nieautoryzowanego usunięcia kluczy lub obejścia kontroli dostępu.
Rekomendacja
Zaktualizuj cJSON do wersji 1.7.20 lub nowszej. Ogranicz dostęp do funkcji JSON Patch dla nieuwierzytelnionych użytkowników.
Inne podatności w cJSON
Zobacz wszystkie- CVE-2026-87933Wysokie
W bibliotece DaveGamble cJSON do wersji 1.7.19 wykryto podatność w funkcji cJSONUtils_MergePatch w pliku cJSON_Utils.c. Manipulacja prowadzi do użycia zwolnionej pamięci (use after free), a atak może być przeprowadzony zdalnie. Exploit został upubliczniony, a pull request z poprawką oczekuje na akceptację.
- CVE-2026-67217Średnie
Podatność w bibliotece cJSON (do wersji 1.7.19) powoduje, że operacje JSON Patch (RFC 6902) nie są wykonywane atomowo – w przypadku błędu walidacji, docelowy element jest usuwany przed pełnym sprawdzeniem, co pozwala atakującemu na modyfikację dokumentu pomimo zgłoszenia błędu.
- CVE-2026-67216Średnie
Podatność w bibliotece cJSON (do wersji 1.7.19) powoduje nieefektywną złożoność algorytmiczną w funkcji cJSON_Compare(), która przy porównywaniu zagnieżdżonych obiektów wykonuje wykładniczą liczbę operacji, co może prowadzić do odmowy usługi (DoS) przy głęboko zagnieżdżonych dokumentach.
- CVE-2026-67215Wysokie
cJSON do wersji 1.7.19 jest podatny na niekontrolowaną rekurencję prowadzącą do wyczerpania stosu podczas stosowania niezaufanej łatki JSON Patch (RFC 6902) przez funkcje cJSONUtils_ApplyPatches. Atakujący może dostarczyć łatkę z operacjami add i copy, które multiplikują zagnieżdżenie dokumentu, powodując przepełnienie stosu i awarię procesu.
- CVE-2026-16554Wysokie
Biblioteka cJSON jest podatna na przepełnienie liczb całkowitych w funkcji print_string_ptr() w cJSON.c na platformach 32-bitowych. Licznik escape_characters, 32-bitowy size_t, może się zawinąć podczas przetwarzania ciągów zawierających około 858 993 460 lub więcej znaków kontrolnych, powodując alokację bufora wyjściowego na podstawie zaniżonej długości. Gdy używana jest cJSON_PrintBuffered() z prealokowanym buforem, późniejsza pętla zapisu przepełnia alokację sterty. Atakujący dostarczający spreparowany ciąg JSON do aplikacji używającej cJSON na platformie 32-bitowej może spowodować przepełnienie bufora sterty, potencjalnie prowadząc do zdalnego wykonania kodu, ujawnienia informacji lub odmowy usługi. Ponieważ próby kontaktu z twórcą projektu były nieskuteczne, podatność została potwierdzona tylko w wersji 1.7.19, ale może również dotyczyć innych wersji.
Oryginalny opis (angielski, źródło NVD)
cJSON versions 1.5.0 through 1.7.19 contain an incorrectly-resolved name or reference vulnerability in the decode_pointer_inplace() function within cJSON_Utils.c that allows unauthenticated attackers to cause JSON Patch operations to target wrong object keys by supplying crafted JSON Pointer escape sequences (~0 or ~1) in patch paths. Attackers can submit malicious RFC 6902 JSON Patch input to applications using cJSONUtils_ApplyPatches() or cJSONUtils_ApplyPatchesCaseSensitive() to silently corrupt data or delete unintended keys, potentially bypassing authorization controls in applications that rely on JSON Patch for access-controlled data modification.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

