CVE-2026-54898
Oj (Optimized JSON) is a JSON parser and Object marshaller packaged as a Ruby gem. In versions prior to 3.17.2,Oj::Parser#parse is vulnerable to a heap use-after-free when a SAJ/SAJ2 callback mutates the input JSON string during parsing. The C engine holds a raw const byte * pointer into the Ruby string's internal buffer. If a callback (e.g. hash_start) resizes the string, for example by calling String#replace with a longer value, Ruby reallocates the string buffer and frees the old one. The C parser's pointer is left dangling.
the next character read at parser.c:607 is a use-after-free. This issue has been fixed in version 3.17.2.
- ⚠ NVD has not scored this CVE yet - manual triage required (common for recent CVEs)
Severity & exploitation scoring
AV:_/AC:_/... vector string published by NVD.ATT&CK techniques
1Techniques this CVE enables. Pills with a solid outline are high confidence - named directly in ATT&CK or Nuclei, or human-curated by CTID; the rest are inferred from the weakness type using MITRE's CVE Mapping Methodology and the CWE → CAPEC chain. Broad, generic-weakness guesses are filtered out. A small N× marks a technique that N independent sources agree on.
▤ Build a SIEM detection for these techniques