PatchSiren cyber security CVE debrief
CVE-2026-54899 ohler55 CVE debrief
CVE-2026-54899 debrief: Use-After-Free in Oj::Parser Symbol Key Cache Toggle. 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.
- Vendor
- ohler55
- Product
- oj
- CVSS
- MEDIUM 6.3
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-06-19
- Original CVE updated
- 2026-10-06
- Advisory published
- 2026-06-19
- Advisory updated
- 2026-10-06
Who should care
Defenders responsible for systems using the oj gem should assess exposure and prioritize verifying and upgrading to oj version 3.17.2 or later. This includes operators, platform administrators, vulnerability management teams, and security teams who need to ensure that systems using the oj gem are properly secured and monitored for potential use-after-free vulnerabilities.
Why it matters
CVE-2026-54899 is a use-after-free vulnerability in the oj gem that can potentially lead to denial of service or code execution. Defenders should prioritize verifying and upgrading to oj version 3.17.2 or later, and assess exposure in systems using the oj gem.
- Potential denial of service due to use-after-free vulnerability
- Possible code execution or data tampering due to use-after-free vulnerability
- Verification of oj gem version and exposure in systems using the gem is necessary
Technical summary
The vulnerability is triggered when disabling `symbol_keys` on a reused `Oj::Parser` instance. 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 affects all versions of the oj gem with `ext/oj/usual.c`. Defenders should be aware of the potential for denial of service or code execution and prioritize verifying and upgrading to oj version 3.17.2 or later.
Defensive priority
Defenders should prioritize verifying and upgrading to oj version 3.17.2 or later, and assess exposure in systems using the oj gem.
Recommended defensive actions
- Verify and upgrade to oj version 3.17.2 or later
- Assess exposure in systems using the oj gem
- Monitor for potential use-after-free vulnerabilities in the oj gem
- Review compensating controls for exposed systems while remediation is scheduled and verified
- Check relevant monitoring, detection, and logs for exposed assets that need extra review
- Track exceptions, retest remediated assets, and close the item only after evidence is documented
- Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up
Evidence notes
The CVE record and source item provide details on the use-after-free vulnerability in the oj gem. The vulnerability is triggered when disabling `symbol_keys` on a reused `Oj::Parser` instance. The source item includes code snippets and ASAN reports to support the vulnerability description.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-54899 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-54899
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-54899 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-54899
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Oj: Use-After-Free in Oj::Parser Symbol Key Cache Toggle
Unverified legacy reference
URL: https://storage.googleapis.com/osv-vulnerabilities/RubyGems/GHSA-2cw7-v8ff-p88r.json
osv_dev
-
Source reference
Unverified legacy reference
URL: https://github.com/ohler55/oj/security/advisories/GHSA-2cw7-v8ff-p88r
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/ohler55/oj
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/rubysec/ruby-advisory-db/blob/master/gems/oj/CVE-2026-54899.yml
Supplemental source
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.