Bug 2495949 (CVE-2026-54903)

Summary: CVE-2026-54903 oj: Oj: Heap corruption and Denial of Service via integer overflow in JSON parsing
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: unspecifiedCC: eshamard, jvasik, kaycoth, rblanco
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in Oj, an Optimized JSON (JavaScript Object Notation) parser for Ruby. This vulnerability allows a remote attacker to cause heap corruption and a denial of service (DoS) by providing a JSON string larger than 2 gigabytes (GB). An integer overflow occurs when processing the string length, leading to out-of-bounds memory access and a process crash. This issue could also potentially corrupt adjacent heap memory.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-07-01 14:03:05 UTC
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.