CVE-2026-54900

Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.2, when in usual mode with create_id enabled, Oj::Parser#parse is vulnerable to heap corruption via a negative-size memcpy. When a JSON object key is exactly 65,535 bytes long, an integer truncation in form_attr (usual.c:63) converts the length to -1 before passing it to memcpy. This causes memcpy to copy SIZE_MAX bytes (interpreted as a huge size_t), corrupting heap memory and crashing the process. The issue has been fixed in version 3.17.2.
CVSS

No CVSS.

Configurations

No configuration.

History

25 Oct 2026, 17:10

Type Values Removed Values Added
Summary
  • (es) Oj (JSON Optimizado) es un analizador JSON y un serializador de objetos empaquetado como una gema de Ruby. En versiones anteriores a la 3.17.2, cuando está en modo usual con create_id habilitado, Oj::Parser#parse es vulnerable a la corrupción de la pila a través de un memcpy de tamaño negativo. Cuando una clave de objeto JSON tiene exactamente 65.535 bytes de longitud, un truncamiento de entero en form_attr (usual.c:63) convierte la longitud a -1 antes de pasarla a memcpy. Esto hace que memcpy copie SIZE_MAX bytes (interpretado como un size_t enorme), corrompiendo la memoria de la pila y bloqueando el proceso. El problema ha sido solucionado en la versión 3.17.2.

Information

Published : 2026-07-01 00:16

Updated : 2026-10-25 17:10


NVD link : CVE-2026-54900

Mitre link : CVE-2026-54900

CVE.ORG link : CVE-2026-54900


JSON object : View

Products Affected

No product.

CWE
CWE-190

Integer Overflow or Wraparound

CWE-787

Out-of-bounds Write