{"id":"CVE-2026-67216","aliases":["AZL-94407","DEBIAN-CVE-2026-67216","EUVD-2026-50328","GHSA-ff2v-f99f-wm3f","ROOT-OS-ALPINE-321-CVE-2026-67216","ROOT-OS-ALPINE-323-CVE-2026-67216","UBUNTU-CVE-2026-67216"],"status":"published","title":"cJSON cJSON_Compare Exponential Complexity Denial of Service","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.","severity":{"version":"4.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","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00645,"percentile":0.51283,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-407"],"published":"2026-07-29T13:32:03Z","modified":"2026-11-05T05:40:51Z","fixes":[{"ecosystem":"Root:Alpine:3.21","package":"cjson","fixed_in":["1.7.19-r00072","1.7.19-r00071"],"sources":["osv"]},{"ecosystem":"Root:Alpine:3.21","package":"rootio-cjson","fixed_in":["1.7.19-r00072","1.7.19-r00071"],"sources":["osv"]},{"ecosystem":"Root:Alpine:3.23","package":"cjson","fixed_in":["1.7.19-r10071","1.7.19-r10074","1.7.19-r10072","1.7.19-r10073"],"sources":["osv"]},{"ecosystem":"Root:Alpine:3.23","package":"rootio-cjson","fixed_in":["1.7.19-r10071","1.7.19-r10074","1.7.19-r10072","1.7.19-r10073"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"apparmor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.1.7-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.15-1","1.7.15-1+deb12u1","1.7.15-1+deb12u2","1.7.15-1+deb12u3","1.7.15-1+deb12u4","1.7.16-1","1.7.16-2","1.7.17-1","1.7.17-2","1.7.18-1","1.7.18-2","1.7.18-3","1.7.18-3.1","1.7.18-4","1.7.19-1","1.7.19-2"]},{"source":"osv","ecosystem":"Debian:13","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.18-3.1","1.7.18-3.1+deb13u1","1.7.18-4","1.7.19-1","1.7.19-2"]},{"source":"osv","ecosystem":"Debian:14","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.18-3.1","1.7.18-4","1.7.19-1","1.7.19-2"]},{"source":"osv","ecosystem":"Root:Alpine:3.21","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.7.19-r00072"},{"fixed":"1.7.19-r00071"}]}]},{"source":"osv","ecosystem":"Root:Alpine:3.21","package":"rootio-cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.7.19-r00072"},{"fixed":"1.7.19-r00071"}]}]},{"source":"osv","ecosystem":"Root:Alpine:3.23","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.7.19-r10071"},{"fixed":"1.7.19-r10074"},{"fixed":"1.7.19-r10072"},{"fixed":"1.7.19-r10073"}]}]},{"source":"osv","ecosystem":"Root:Alpine:3.23","package":"rootio-cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.7.19-r10071"},{"fixed":"1.7.19-r10074"},{"fixed":"1.7.19-r10072"},{"fixed":"1.7.19-r10073"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"iperf3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.11-1","3.0.11-1ubuntu0.1~esm1","3.0.11-1ubuntu0.1~esm2"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"mapcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.4.0-3","1.4.0-4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"iperf3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.1.3-1","3.1.3-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"mapcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.6.0-2","1.6.1-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.10-1.1","1.7.10-1.1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"iperf3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.6-2","3.7-1","3.7-2","3.7-3","3.7-3ubuntu0.1~esm1","3.7-3ubuntu0.1~esm2"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"mapcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.0-1","1.8.0-1build2","1.10.0-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"mapcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.10.0-2build1","1.10.0-2build3","1.12.0-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.14-1","1.7.15-1","1.7.15-1ubuntu0.1~esm2","1.7.15-1ubuntu0.1","1.7.15-1ubuntu0.1+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"iperf3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.9-1","3.9-1build1","3.9-1+deb11u1build0.22.04.1","3.9-1+deb11u1ubuntu0.1~esm1","3.9-1+deb11u1ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"mapcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.14.0-2","1.14.0-2build1","1.14.0-2build2","1.14.0-4build1","1.14.0-4build2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.16-1","1.7.16-2","1.7.17-1","1.7.17-1ubuntu0.1~esm2","1.7.17-1ubuntu0.1~esm3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"iperf3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.14-1","3.15-1","3.16-1","3.16-1build1","3.16-1build2","3.16-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.19-2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"iperf3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.20-2","3.20-2.1","3.20-2.1build1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"mapcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.14.1-3build2","1.16.0-1","1.16.0-1build1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"sail-ocaml","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.19.1+dfsg5-1build3","0.20.2+dfsg-1build1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"cjson","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.18-3.1","1.7.18-4","1.7.19-1","1.7.19-2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"iperf3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.18-2","3.19.1-2","3.20-2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"mapcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.14.1-3","1.14.1-3build1","1.14.1-3build2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"sail-ocaml","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.19.1+dfsg5-1","0.19.1+dfsg5-1build2","0.19.1+dfsg5-1build3"]}],"products":[{"vendor":"cjson project","product":"cjson"},{"vendor":"davegamble","product":"cjson"}],"references":[{"url":"https://joshua.hu/cjson-json-parser-cve-vulnerabilities","tags":["exploit","Exploit","Press/Media Coverage","Third Party Advisory","evidence","report"]},{"url":"https://github.com/DaveGamble/cJSON/blob/v1.7.19/cJSON.c#L3057-L3180","tags":["technical-description","Patch","article"]},{"url":"https://www.vulncheck.com/advisories/cjson-cjson-compare-exponential-complexity-denial-of-service","tags":["third-party-advisory","Third Party Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-67216","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-ff2v-f99f-wm3f"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/67xxx/CVE-2026-67216.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-67216","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-67216","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-67216","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-67216","title":"cJSON cJSON_Compare Exponential Complexity Denial of Service","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.","status":"published","published":"2026-07-29T13:32:03.696Z","modified":"2026-07-30T15:19:59.613Z","cvss":[{"version":"4.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","level":"high","assessor":"cna"},{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T14:20:06.562031Z"}],"euvd":[{"id":"EUVD-2026-50328","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.","status":"published","published":"2026-07-29T13:32:03Z","modified":"2026-07-30T15:19:59Z","cvss":[{"version":"4.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","level":"high"}],"updated_at":"2026-11-02T18:02:28.463488Z"}],"ghsa":[{"id":"GHSA-ff2v-f99f-wm3f","title":"cJSON through 1.7.19 contains an inefficient algorithmic complexity flaw in cJSON_Compare(). When...","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.","status":"published","published":"2026-07-29T15:31:12Z","modified":"2026-07-29T15:31:18Z","cvss":[{"version":"4.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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high"},{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T15:09:54.335538Z"}],"nvd":[{"id":"CVE-2026-67216","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.","status":"published","published":"2026-07-29T14:16:35.333Z","modified":"2026-10-23T23:10:00.157Z","cvss":[{"version":"4.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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T14:12:33.629616Z"}],"osv":[{"id":"CVE-2026-67216","title":"cJSON cJSON_Compare Exponential Complexity Denial of Service","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.","status":"published","published":"2026-07-29T13:32:03.696Z","modified":"2026-10-28T02:31:13.917028042Z","cvss":[{"version":"4.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","level":"high"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T15:45:14.46177Z"},{"id":"DEBIAN-CVE-2026-67216","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.","status":"published","published":"2026-07-29T14:16:35.333Z","modified":"2026-10-24T09:47:36.772854875Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:58.699079Z"},{"id":"UBUNTU-CVE-2026-67216","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.","status":"published","published":"2026-07-29T14:16:00Z","modified":"2026-10-17T12:56:41.451379685Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"},{"version":"4.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","level":"high"}],"updated_at":"2026-11-02T16:56:53.710209Z"},{"id":"AZL-94407","title":"CVE-2026-67216 affecting package apparmor 3.1.7-1","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.","status":"published","published":"2026-07-29T14:16:35Z","modified":"2026-11-05T05:40:51Z","updated_at":"2026-11-05T16:41:26.077208Z"},{"id":"ROOT-OS-ALPINE-321-CVE-2026-67216","title":"CVE-2026-67216 in cjson - Patched by Root","description":"Root has patched CVE-2026-67216 in the cjson package for Root:Alpine:3.21. Multiple fixed versions available.","status":"published","published":"2026-09-29T09:23:51Z","modified":"2026-09-29T10:15:23.641156733Z","updated_at":"2026-11-02T15:53:28.544053Z"},{"id":"ROOT-OS-ALPINE-323-CVE-2026-67216","title":"CVE-2026-67216 in cjson - Patched by Root","description":"Root has patched CVE-2026-67216 in the cjson package for Root:Alpine:3.23. Multiple fixed versions available.","status":"published","published":"2026-09-29T09:58:17Z","modified":"2026-09-29T10:15:23.644286528Z","updated_at":"2026-11-02T15:53:28.544053Z"}]}}
