What’s Vulnerable › Vulnerabilities
CVE-2026-54911: UltraJSON: Malformed/Truncated UTF-8 Accepted and Silently Rewritten in ujson.dumps()
- Severity: medium (CVSS 6.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.4% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-06-22 · updated 2026-06-26
- Weakness: CWE-20
Description
UltraJSON is a fast JSON encoder and decoder written in pure C with bindings for Python 3.7+. Prior to 5.13.0, ujson.dumps() (or ujson.dump() or ujson.encode()) have a reject_bytes=False option. When set, they may accept malformed or truncated UTF-8 byte sequences, silently rewriting them into different Unicode characters instead of rejecting them. This leads to input validation bypass and data integrity issues. This vulnerability is fixed in 5.13.0.
Affected products
- ultrajson: before 5.13.0 — fixed in 5.13.0
How to fix
Upgrade to a fixed version: ultrajson 5.13.0. Check the vendor advisory for mitigations.
References
- https://github.com/ultrajson/ultrajson/commit/169eaf36b1116fece5034ee79a7a0ef3f6deedcf
- https://github.com/ultrajson/ultrajson/releases/tag/5.13.0
- https://github.com/ultrajson/ultrajson/security/advisories/GHSA-3j69-69wj-xqx2
Get alerted when CVE-2026-54911 or the next vulnerability affects your stack