HIGH✓ PATCH🇬🇧 English

CVE-2026-67215

cJSON: niekontrolowana rekurencja prowadząca do wyczerpania stosu (DoS)

CVSS 8.7v4.0pub. 2026-07-29upd. 2026-08-04

Biblioteka cJSON w wersjach do 1.7.19 włącznie jest podatna na niekontrolowaną rekurencję powodującą wyczerpanie stosu wątku podczas stosowania niezaufanego dokumentu JSON Patch (RFC 6902). Atakujący mogący dostarczyć dokument patch może doprowadzić do awarii procesu, skutkując odmową usługi (DoS).

Pokaż oryginał (EN)

cJSON through 1.7.19 is vulnerable to uncontrolled recursion leading to stack exhaustion when an untrusted RFC 6902 JSON Patch is applied via cJSONUtils_ApplyPatches() or cJSONUtils_ApplyPatchesCaseSensitive(). A patch containing add and copy operations grafts duplicated subtrees to amplify document depth beyond the parser's nesting limit: cJSON_Delete() recurses with no depth bound, and the cJSON_Duplicate() guard CJSON_CIRCULAR_LIMIT is set to 10000, ten times the parser's 1000-level nesting limit and high enough to overflow a default thread stack. An attacker who can supply the patch document can crash the process, resulting in denial of service.

🤖 Analiza AI
Jak działa

Błąd (CWE-674) polega na braku ograniczenia głębokości rekurencji w funkcjach cJSONUtils_ApplyPatches() oraz cJSONUtils_ApplyPatchesCaseSensitive(). Spreparowany patch zawierający operacje 'add' i 'copy' powoduje powielanie poddrzew dokumentu JSON, co sztucznie zwiększa głębokość zagnieżdżenia struktury. Stała CJSON_CIRCULAR_LIMIT, ograniczająca głębokość w cJSON_Duplicate(), wynosi 10 000 — czyli dziesięciokrotnie więcej niż limit parsera (1 000 poziomów). Funkcja cJSON_Delete() rekuruje bez żadnego ograniczenia głębokości, co przy tak głębokiej strukturze powoduje przepełnienie domyślnego stosu wątku i awarię procesu.

Skutki

Atakujący mogący dostarczyć dokument JSON Patch jest w stanie spowodować awarię (crash) procesu wykorzystującego bibliotekę cJSON, co skutkuje odmową usługi (DoS) dla aplikacji lub usługi opartej na tej bibliotece.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Tymczasowo zaleca się unikanie przetwarzania niezaufanych dokumentów JSON Patch przez podatne funkcje oraz rozważenie wprowadzenia zewnętrznej walidacji głębokości zagnieżdżenia przed przekazaniem danych do biblioteki.

Kogo dotyczy

Biblioteka cJSON w wersjach do 1.7.19 włącznie — dotyczy aplikacji korzystających z funkcji cJSONUtils_ApplyPatches() lub cJSONUtils_ApplyPatchesCaseSensitive() przy przetwarzaniu niezaufanych dokumentów JSON Patch (RFC 6902).

Uwagi

Podatność dotyczy wyłącznie komponentu cJSONUtils (obsługa RFC 6902 JSON Patch), nie głównego parsera cJSON. Szczegóły techniczne wraz z analizą kodu źródłowego zostały opublikowane pod adresem https://joshua.hu/cjson-json-parser-cve-vulnerabilities.

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • Davegamble Cjson

    APP
    Davegamble
    ≤ 1.7.19
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
DoS
CWE
Referencje

Powiązane podatności

CVE-2025-57052CRITICAL9.8PL ✓ten sam produkt

Out-of-bounds access w cJSON przez funkcję decode_array_index_from_pointer

CVE-2019-11834CRITICAL9.8PL ✓ten sam produkt

cJSON: out-of-bounds access przez znak \x00 w literale tekstowym

CVE-2019-11835CRITICAL9.8PL ✓ten sam produkt

Dostęp poza zakresem pamięci w cJSON związany z komentarzami wieloliniowymi

CVE-2016-10749CRITICAL9.8PL ✓ten sam produkt

Buffer over-read w funkcji parse_string biblioteki cJSON

CVE-2018-1000217CRITICAL9.8PL ✓ten sam produkt

Use-after-free w bibliotece cJSON umożliwiający RCE