Approved changes feed: RSS · Atom

cpe:2.3:a:ohler55:oj:*:*:*:*:*:*:*:*

part: a version: * update: *

VendorOhler55 (5b5c98b2-0515-57bd-9e88-375cdd50109e)
ProductOj (51d14fda-ae3c-56c6-bf5a-cbe4b7766cfd)
Edition*
Language*
Software edition*
Target software*
Target hardware*
Other*

Notes

Imported from gcve-enriched-dumps CVE data

PURL mappings

PURLSourceLast updated
No PURL mappings for this CPE yet.

Vulnerability references

IdentifiercpeApplicabilitySubmitteddb.gcve.eu detailsRationale
CVE:CVE-2026-54903 vulnerable 2026-07-29 01:00:28.098921 Oj: Integer Overflow in Oj.load 2GB String Handling
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.
Published: 2026-06-30T23:42:06.777Z
Updated: 2026-07-01T12:43:48.523Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54902 vulnerable 2026-07-29 01:00:28.098807 Oj: Use-After-Free in Oj::Parser SAJ Long Key Callback
Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. Prior to version 3.17.2, is vulnerable to Use-After-Free when in SAJ mode. The Oj::Parser does not protect cached object keys (≥ 35 bytes) from garbage collection, and a Ruby callback that triggers GC inside hash_end can cause the key string to be reclaimed while the C parser still holds a pointer to it. The subsequent access to the freed string VALUE results in a segfault, confirmed by an RIP pointing to address 0x4242 (a canary-style pattern suggesting control over the freed memory's content). This issue has been fixed in version 3.17.2.
Published: 2026-06-30T23:40:32.627Z
Updated: 2026-07-01T12:37:40.878Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54901 vulnerable 2026-07-29 01:00:28.098679 Oj: Use-After-Free in Oj::Parser array_class/hash_class GC Marking
Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.2, Oj::Parser in usual mode does not mark array_class and hash_class references during garbage collection, leading to Use-After-Free. If GC runs after the class is assigned but before a parse, the class object is reclaimed, leaving the parser holding a dangling VALUE. The subsequent parse call dereferences the freed object, producing a segfault. This issue has been fixed in version 3.17.2.
Published: 2026-06-30T23:36:38.526Z
Updated: 2026-07-01T12:34:23.576Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54900 vulnerable 2026-07-29 01:00:28.098450 Oj: Negative-Size memcpy in Oj::Parser create_id Attribute Handling
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.
Published: 2026-06-30T23:34:05.904Z
Updated: 2026-07-01T15:48:35.112Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54899 vulnerable 2026-07-29 01:00:28.098334 Oj: Use-After-Free in Oj::Parser Symbol Key Cache Toggle
Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. Prior to version 3.17.2, disabling symbol_keys on a reused Oj::Parser instance triggers a heap use-after-free. When symbol_keys is toggled from true to false, opt_symbol_keys_set frees the internal key cache (cache_free) but does not clear the pointer. The next parse call reads from the freed cache via cache_intern, producing a use-after-free. This issue has been fixed in version 3.17.2.
Published: 2026-06-30T23:03:15.696Z
Updated: 2026-07-01T14:26:28.538Z
Reference links
Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54898 vulnerable 2026-07-29 01:00:28.098208 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54897 vulnerable 2026-07-29 01:00:28.098055 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54896 vulnerable 2026-07-29 01:00:28.097802 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54592 vulnerable 2026-07-29 01:00:27.901728 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54502 vulnerable 2026-07-29 01:00:27.869649 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data
CVE:CVE-2026-54500 vulnerable 2026-07-29 01:00:27.869332 db.gcve.eu details were skipped to keep the page responsive. Imported from gcve-enriched-dumps CVE data

Contribute

You can submit an edit proposal for this CPE entry or suggest a related product/vendor addition using the action button above.

Inspect record JSON

Open JSON directly

Open this panel to browse, search, copy or download the JSON record.