Skip to main content
← All vulnerabilities
CVE-2026-54900GHSA-9CV6-QCJW-4GRX

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.17.2, 3.17.3
1 proof of concept on GitHub
  • Exploitation: poc
  • Automatable: yes
  • Technical impact: total

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: yes · Technical impact: total

  3. Record last updated

Affected versions

  • ohler55 oj

    fixed in 3.17.2

  • ojRubyGems

    fixed in 3.17.3

References 2

GitHub · ohler55/oj

GitHub · HORKimhab/CVE-2026-54900