Skip to main content
← All vulnerabilities
CVE-2026-54903GHSA-475M-PH3X-64GP

Oj: Integer Overflow in Oj.load 2GB String Handling

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.17.2, 3.17.3
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: yes
  • Technical impact: partial

Summary

Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.2, Oj.load is vulnerable to heap corruption when parsing a JSON string longer than 2 GB. An integer overflow in buf_append_string (buf.h:61) converts the string length to a large negative size_t, causing memcpy to copy an astronomically large amount of data out of bounds. This crashes the process and can corrupt adjacent heap memory. The issue has been fixed in version 3.17.2.

Timeline

  1. CVE published
  2. CISA SSVC assessment

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

  3. Record last updated

Affected versions

  • ohler55 oj

    fixed in 3.17.2

  • ojRubyGems

    fixed in 3.17.3

References 1

GitHub · ohler55/oj