Oj: Integer Overflow in Oj.load 2GB String Handling
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- None · None · Low
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ohler55 | oj | before 3.17.2 | 3.17.2 | Patch available | CNA |
| — | oj (RubyGems) | before 3.17.3 | 3.17.3 | Patch available | GHSA-475m-ph3x-64gp |
- oj Vendorohler55 Affected before 3.17.2 Fixed in 3.17.2 Patch available CNA
- oj (RubyGems) Vendor— Affected before 3.17.3 Fixed in 3.17.3 Patch available GHSA-475m-ph3x-64gp
Remediation
- Fix · CNA oj (ohler55) Fixed in 3.17.2
- Fix · GHSA-475m-ph3x-64gp oj (RubyGems) Fixed in 3.17.3 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-54903
- 2026-10-03 Alias added: GHSA-475m-ph3x-64gp
References
More ohler55 vulnerabilities
- TI-2026-39426 Oj: Stack Buffer Overflow in Oj::Doc#each_child via Deeply Nested Input CVSS 3.1HIGH 7.5
- TI-2026-39672 Oj: Negative-Size memcpy in Oj::Parser create_id Attribute Handling CVSS 4.0MEDIUM 6.3
- TI-2026-39348 Oj: Stack Buffer Overflow in Oj.dump via Large Indent CVSS 4.0MEDIUM 6.3
- TI-2026-39674 Oj: Use-After-Free in Oj::Parser SAJ Long Key Callback CVSS 4.0MEDIUM 6.3
- TI-2026-39673 Oj: Use-After-Free in Oj::Parser array_class/hash_class GC Marking CVSS 4.0MEDIUM 6.3
- TI-2026-39671 Oj: Use-After-Free in Oj::Parser Symbol Key Cache Toggle CVSS 4.0MEDIUM 6.3
Sources
- CVE-2026-54903 · CVE Program
- CVE-2026-54903 · NVD
- FIRST EPSS
- GHSA-475m-ph3x-64gp · GitHub Advisory Database · CC BY 4.0
- CVE-2026-54903 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences