| Title | DaveGamble cJSON v1.7.19 Use After Free |
|---|
| Description | A heap-use-after-free (UAF) exists in cJSON's RFC 7386 MergePatch implementation. When cJSONUtils_MergePatch() is called with a non-object patch (e.g., an array), the merge_patch() function in cJSON_Utils.c frees the arget object at line 1328, then calls cJSON_Duplicate(patch, 1) which internally calls cJSON_Duplicate_rec() at line 2808 of cJSON.c. The cJSON_Duplicate_rec() function dereferences item->type on the already-freed object: the freed heap memory gets reallocated for the duplicate tree, and the original freed memory region is then read, triggering a heap-use-after-free.(CWE-416 Use After Free) |
|---|
| Source | ⚠️ https://github.com/DaveGamble/cJSON/issues/1060 |
|---|
| User | lrrh (UID 100159) |
|---|
| Submission | 07/30/2026 18:13 (1 month ago) |
|---|
| Moderation | 09/09/2026 18:21 (1 month later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 401815 [DaveGamble cJSON up to 1.7.19 cJSON_Utils.c cJSONUtils_MergePatch use after free] |
|---|
| Points | 20 |
|---|