Description
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.
Published: 2026-07-29
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw resides in cJSON_Compare, an algorithm that recursively compares JSON objects. Internally it traverses each shared subtree twice, once for each direction, without limiting recursion depth. When an attacker supplies a deeply nested JSON document structurally equal to a trusted reference, the comparison consumes exponential CPU time, potentially taking hours for a document only a few hundred bytes in size. This overwhelmingly consumes processing resources and renders the application unusable, constituting a denial‑of‑service condition. The weakness is characterized by algorithmic complexity and resource exhaustion (CWE‑407, CWE‑770).

Affected Systems

The bug affects the cJSON library maintained by DaveGamble, specifically any release through version 1.7.19. Systems employing cJSON in any form that may compare user‑supplied JSON against a known document are susceptible. Updated or later releases that fix the recursion guard are not affected.

Risk and Exploitability

The CVSS score of 8.2 reflects a high severity impact, while the EPSS score of less than 1% suggests that exploitation is unlikely at present. The vulnerability is not listed in CISA’s KEV catalog, and no public exploits have been documented. The likely attack vector involves an application that processes external JSON data and calls cJSON_Compare; an attacker would craft a deeply nested, equivalent document to trigger the denial‑of‑service.

Generated by OpenCVE AI on August 4, 2026 at 12:29 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Avoid performing comparative checks on untrusted JSON; validate input before calling cJSON_Compare
  • Implement a hard limit on JSON nesting depth in the application prior to parsing or comparing, thereby preventing recursive calls from exceeding a safe threshold
  • Consult the vendor’s repository for any released patches or forks that address this issue, and apply them if available

Generated by OpenCVE AI on August 4, 2026 at 12:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 30 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 30 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770
References
Metrics threat_severity

None

threat_severity

Moderate


Wed, 29 Jul 2026 14:00:00 +0000

Type Values Removed Values Added
Description 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.
Title cJSON cJSON_Compare Exponential Complexity Denial of Service
First Time appeared Davegamble
Davegamble cjson
Weaknesses CWE-407
CPEs cpe:2.3:a:davegamble:cjson:*:*:*:*:*:*:*:*
Vendors & Products Davegamble
Davegamble cjson
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}

cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Davegamble Cjson
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-30T15:19:59.613Z

Reserved: 2026-07-28T19:20:19.157Z

Link: CVE-2026-67216

cve-icon Vulnrichment

Updated: 2026-07-30T13:38:54.112Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-29T14:16:35.333

Modified: 2026-08-04T15:05:11.557

Link: CVE-2026-67216

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-29T13:32:03Z

Links: CVE-2026-67216 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T12:30:09Z

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity

  • CWE-770

    Allocation of Resources Without Limits or Throttling