Approved changes feed: RSS · Atom

cpe:2.3:a:ultrajson_project:ultrajson:*:*:*:*:*:python:*:*

part: a version: * update: *

VendorUltrajson Project (48dc1038-b576-5863-9cfc-2d97675894b5)
ProductUltrajson (92156e25-6c36-5b1a-861a-8bade238348f)
Edition*
Language*
Software edition*
Target softwarepython
Target hardware*
Other*

Notes

Imported from purl2cpe mapping

PURL mappings

PURLSourceLast updated
pkg:github/ultrajson/ultrajson purl2cpe 2026-06-01 10:16:57.939687

Vulnerability references

IdentifiercpeApplicabilitySubmitteddb.gcve.eu detailsRationale
CVE:CVE-2026-32875 vulnerable 2026-06-08 07:57:18.276722 UltraJSON has an integer overflow handling large indent leads to buffer overflow or infinite loop
HIGH (7.5)
UltraJSON is a fast JSON encoder and decoder written in pure C with bindings for Python 3.7+. Versions 5.10 through 5.11.0 are vulnerable to buffer overflow or infinite loop through large indent handling. ujson.dumps() crashes the Python interpreter (segmentation fault) when the product of the indent parameter and the nested depth of the input exceeds INT32_MAX. It can also get stuck in an infinite loop if the indent is a large negative number. Both are caused by an integer overflow/underflow whilst calculating how much memory to reserve for indentation. And both can be used to achieve denial of service. To be vulnerable, a service must call ujson.dump()/ujson.dumps()/ujson.encode() whilst giving untrusted users control over the indent parameter and not restrict that indentation to reasonably small non-negative values. A service may also be vulnerable to the infinite loop if it uses a fixed negative indent. An underflow always occurs for any negative indent when the input data is at least one level nested but, for small negative indents, the underflow is usually accidentally rectified by another overflow. This issue has been fixed in version 5.12.0.
Published: 2026-03-20T01:35:23.362Z
Updated: 2026-07-15T01:07:31.359Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-32874 vulnerable 2026-06-08 07:57:18.276183 UltraJSON has a Memory Leak parsing large integers allows DoS
HIGH (7.5)
UltraJSON is a fast JSON encoder and decoder written in pure C with bindings for Python 3.7+. Versions 5.4.0 through 5.11.0 contain an accumulating memory leak in JSON parsing large (outside of the range [-2^63, 2^64 - 1]) integers. The leaked memory is a copy of the string form of the integer plus an additional NULL byte. The leak occurs irrespective of whether the integer parses successfully or is rejected due to having more than sys.get_int_max_str_digits() digits, meaning that any sized leak per malicious JSON can be achieved provided that there is no limit on the overall size of the payload. Any service that calls ujson.load()/ujson.loads()/ujson.decode() on untrusted inputs is affected and vulnerable to denial of service attacks. This issue has been fixed in version 5.12.0.
Published: 2026-03-20T01:31:30.207Z
Updated: 2026-07-15T01:07:33.770Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-31117 vulnerable 2026-06-08 05:43:40.233243 Double free of buffer during string decoding in ujson
MEDIUM (5.9)
UltraJSON is a fast JSON encoder and decoder written in pure C with bindings for Python 3.7+. In versions prior to 5.4.0 an error occurring while reallocating a buffer for string decoding can cause the buffer to get freed twice. Due to how UltraJSON uses the internal decoder, this double free is impossible to trigger from Python. This issue has been resolved in version 5.4.0 and all users should upgrade to UltraJSON 5.4.0. There are no known workarounds for this issue.
Published: 2022-07-05T17:30:13.000Z
Updated: 2025-04-23T18:05:03.670Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2022-31116 vulnerable 2026-06-08 05:43:40.232028 Incorrect handling of invalid surrogate pair characters in ujson
HIGH (7.5)
UltraJSON is a fast JSON encoder and decoder written in pure C with bindings for Python 3.7+. Affected versions were found to improperly decode certain characters. JSON strings that contain escaped surrogate characters not part of a proper surrogate pair were decoded incorrectly. Besides corrupting strings, this allowed for potential key confusion and value overwriting in dictionaries. All users parsing JSON from untrusted sources are vulnerable. From version 5.4.0, UltraJSON decodes lone surrogates in the same way as the standard library's `json` module does, preserving them in the parsed output. Users are advised to upgrade. There are no known workarounds for this issue.
Published: 2022-07-05T17:35:11.000Z
Updated: 2025-04-22T17:52:13.305Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2021-45958 vulnerable 2026-06-08 05:36:49.606753 Details available
UltraJSON (aka ujson) through 5.1.0 has a stack-based buffer overflow in Buffer_AppendIndentUnchecked (called from encode). Exploitation can, for example, use a large amount of indentation.
Published: 2021-12-31T23:52:45.000Z
Updated: 2024-08-04T04:54:31.071Z
Reference links
Imported from gcve-enriched-dumps CVE data

Contribute

You can submit an edit proposal for this CPE entry or suggest a related product/vendor addition using the action button above.

Inspect record JSON

Open JSON directly

Open this panel to browse, search, copy or download the JSON record.