CVE-2023-53154
NoneCVSS
—
EPSS
0.3%
Published
May 23, 2025
CISA due date
—
Cloudanix analysis
A bug in a common data-parsing library can make programs read memory they should not when given certain inputs, which may cause crashes or leaks.
- Exploitation
- Other
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
The vulnerability is a heap-based buffer over-read in parse_string when cJSON_ParseWithLength processes JSON such as {"1":1 with no trailing newline.
Why it matters to the business
Applications that embed the library may crash or disclose memory contents when handling untrusted JSON, disrupting services and increasing risk of data exposure.
How an attack unfolds
An attacker supplies a crafted JSON fragment lacking a trailing newline to any code path that calls cJSON_ParseWithLength, causing the parser to read past the allocated buffer.
How to fix it
Upgrade davegamble/cjson to commit acc76239bee01d8e9c858ae2cab296704e52d916 or release 1.7.18 or newer.
How to confirm the fix worked
Confirm the installed cJSON version is 1.7.18 or later; re-test parsing of newline-free JSON objects to verify the over-read no longer occurs.
Typical attack path
- Locate an application that uses a vulnerable cJSON build
- Prepare a minimal JSON object without a trailing newline
- Invoke cJSON_ParseWithLength with the crafted input
- Observe crash or memory disclosure from the over-read
How to detect it
Search application and system logs for segmentation faults or abnormal terminations during JSON parsing; inspect any custom wrappers around cJSON_ParseWithLength for error handling gaps.
What your security team should do
- Update the cJSON dependency to the fixed commit across all products
- Audit call sites that use cJSON_ParseWithLength
- Add runtime bounds checks or input sanitization around JSON ingestion
- Include the library in the next scheduled dependency scan
The record
parse_string in cJSON before 1.7.18 has a heap-based buffer over-read via {"1":1, with no trailing newline if cJSON_ParseWithLength is called.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | cjson | 0 | No fix |
| Debian:12 | cjson | 0 | No fix |
| Debian:13 | cjson | 0 | 1.7.18-1 |
| Debian:14 | cjson | 0 | 1.7.18-1 |
Related vulnerabilities
- CVE-2025-57052 cJSON 1.5.0 through 1.7.18 allows out-of-bounds access via the… Also affects cjson
- CVE-2023-26819 cJSON 1.7.15 might allow a denial of service via a crafted JSON document such as {"a"… Also affects cjson
- CVE-2024-31755 cJSON v1.7.17 was discovered to contain a segmentation violation, which can trigger… Also affects cjson