cJSON JSON Patch Non-Atomic Application Destroys Data Before Validation
33Vexday Risk Score
No sign of exploitation. It has a public proof of concept.
ssvc Attendcvss 6.9epss 0.2%
exploitation probability
0.2%top 86% of all CVEs
observed exploitation
nono source reports it
1 public exploit(s)
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.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Affected products
DaveGamble · cJSONpublic PoCs found — 1
cve_referencejoshua.hu/cjson-json-parser-cve-vulnerabilitiesunverified⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.