CVE-2026-67217
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Organizacja może doświadczyć nieoczekiwanych zmian w danych JSON, co może prowadzić do uszkodzenia danych lub naruszenia integralności systemu.
Rekomendacja
Zaleca się aktualizację biblioteki cJSON do wersji 1.7.20 lub nowszej, jeśli dostępna.
Inne podatności w cJSON
Zobacz wszystkie- CVE-2026-29036Wysokie
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.
- 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 through 1.7.19 applies RFC 6902 JSON Patch operations non-atomically in apply_patch() in cJSON_Utils.c. For a replace operation that is missing its value member, or a move operation whose destination path cannot be resolved, the existing target member is detached and deleted before the operation is fully validated, so the target document is mutated while cJSONUtils_ApplyPatches() or cJSONUtils_ApplyPatchesCaseSensitive() returns a failure status. An attacker who can supply the patch document can destroy addressable members of the target document even though the API reports that the patch failed, defeating the all-or-nothing behavior callers rely on to reject bad patches.

