CVE-2026-32875

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.
Configurations

Configuration 1 (hide)

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

History

30 Jun 2026, 03:18

Type Values Removed Values Added
References
  • () https://access.redhat.com/security/cve/CVE-2026-32875 -
  • () https://bugzilla.redhat.com/show_bug.cgi?id=2449400 -
  • () https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-32875.json -

17 Jun 2026, 10:36

Type Values Removed Values Added
Summary
  • (es) UltraJSON es un codificador y decodificador JSON rápido escrito en C puro con enlaces para Python 3.7+. Las versiones 5.10 a 5.11.0 son vulnerables a desbordamiento de búfer o bucle infinito a través del manejo de sangrías grandes. ujson.dumps() bloquea el intérprete de Python (fallo de segmentación) cuando el producto del parámetro de sangría y la profundidad anidada de la entrada excede INT32_MAX. También puede quedarse atascado en un bucle infinito si la sangría es un número negativo grande. Ambos son causados por un desbordamiento/subdesbordamiento de entero mientras se calcula cuánta memoria reservar para la sangría. Y ambos pueden usarse para lograr denegación de servicio. Para ser vulnerable, un servicio debe llamar a ujson.dump()/ujson.dumps()/ujson.encode() mientras otorga a usuarios no confiables control sobre el parámetro de sangría y no restringe esa sangría a valores no negativos razonablemente pequeños. Un servicio también puede ser vulnerable al bucle infinito si utiliza una sangría negativa fija. Un subdesbordamiento siempre ocurre para cualquier sangría negativa cuando los datos de entrada están anidados al menos un nivel pero, para sangrías negativas pequeñas, el subdesbordamiento suele ser rectificado accidentalmente por otro desbordamiento. Este problema ha sido corregido en la versión 5.12.0.

23 Mar 2026, 15:29

Type Values Removed Values Added
First Time Ultrajson Project ultrajson
Ultrajson Project
CPE cpe:2.3:a:ultrajson_project:ultrajson:*:*:*:*:*:python:*:*
References () https://github.com/ultrajson/ultrajson/commit/486bd4553dc471a1de11613bc7347a6b318e37ea - () https://github.com/ultrajson/ultrajson/commit/486bd4553dc471a1de11613bc7347a6b318e37ea - Patch
References () https://github.com/ultrajson/ultrajson/issues/700 - () https://github.com/ultrajson/ultrajson/issues/700 - Issue Tracking
References () https://github.com/ultrajson/ultrajson/security/advisories/GHSA-c8rr-9gxc-jprv - () https://github.com/ultrajson/ultrajson/security/advisories/GHSA-c8rr-9gxc-jprv - Exploit, Vendor Advisory

20 Mar 2026, 02:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-03-20 02:16

Updated : 2026-07-15 02:20


NVD link : CVE-2026-32875

Mitre link : CVE-2026-32875

CVE.ORG link : CVE-2026-32875


JSON object : View

Products Affected

ultrajson_project

  • ultrajson
CWE
CWE-190

Integer Overflow or Wraparound

CWE-787

Out-of-bounds Write

CWE-835

Loop with Unreachable Exit Condition ('Infinite Loop')