cJSON through 1.7.19 contains an inefficient algorithmic complexity flaw in cJSON_Compare(). When comparing objects, the function recurses into each shared subtree twice, once in each direction, with no depth guard, making the running time exponential in nesting depth. A small, deeply nested document of a few hundred bytes (depth around 40) compared for equality consumes hours of CPU, and the cost roughly doubles with each additional level of nesting. An application that calls cJSON_Compare() on attacker-influenced JSON that is structurally equal to a reference document is exposed to a denial-of-service condition.
Fix
Patch, vendor advisory and mitigation references on NVD 1
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 8.2 · davegambleNVD modified 2026-10-23 23:10
Affected (CPE criteria) 1
cpe:2.3:a:davegamble:cjson:*:*:*:*:*:*:*:*
References 3
- https://github.com/DaveGamble/cJSON/blob/v1.7.19/cJSON.c#L3057-L3180 Patch
- https://joshua.hu/cjson-json-parser-cve-vulnerabilities Exploit, Press/Media Coverage, Third Party Advisory
- https://www.vulncheck.com/advisories/cjson-cjson-compare-exponential-complexity-denial-of-service Third Party Advisory