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.
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 6.9 · davegambleNVD modified 2026-10-23 23:10
Affected (CPE criteria) 1
cpe:2.3:a:davegamble:cjson:*:*:*:*:*:*:*:*
References 4
- https://github.com/DaveGamble/cJSON/blob/v1.7.19/cJSON_Utils.c#L887-L948 Patch
- https://joshua.hu/cjson-json-parser-cve-vulnerabilities Exploit, Press/Media Coverage, Third Party Advisory
- https://www.vulncheck.com/advisories/cjson-json-patch-non-atomic-application-destroys-data-before-validation Third Party Advisory
- https://joshua.hu/cjson-json-parser-cve-vulnerabilities Exploit, Press/Media Coverage, Third Party Advisory