CVE-2026-54900CWE-190CWE-787

Oj: Negative-Size memcpy in Oj::Parser create_id Attribute Handling

Medium · published June 30, 2026

CVSS v4.0
6.3
EPSS
0%
Percentile
37.8
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v4.0
6.3 · MEDIUM
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
EPSS
0.00447 · 37.8th percentile
Weaknesses
CWE-190 · Integer Overflow or Wraparound; CWE-787 · Out-of-bounds Write
Published
2026-06-30T23:34Z
EPSS history
Timeline
  • 30 JUN 23:34Z
    Oj: Negative-Size memcpy in Oj::Parser create_id Attribute Handling
    cvelistv5