CVE-2026-54902
Description
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.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
ojRubyGems | < 3.17.3 | 3.17.3 |
Affected products
26- osv-coords25 versionspkg:apk/chainguard/ruby4.0-fluentd-kubernetes-daemonset-1.16-kinesispkg:apk/wolfi/ruby3.2-fluentd-kubernetes-daemonset-1.18-kinesispkg:apk/wolfi/ruby3.4-kube-logging-operator-fluentd-outputspkg:apk/wolfi/ruby3.3-fluentd-kubernetes-daemonset-1.19-kinesispkg:apk/wolfi/ruby3.4-fluentd-kubernetes-daemonset-1.19-kinesispkg:apk/chainguard/ruby3.4-fluentd-kubernetes-daemonset-1.16-kinesispkg:apk/chainguard/ruby3.4-kube-logging-operator-fluentd-outputspkg:apk/wolfi/ruby3.2-fluentd-kubernetes-daemonset-1.19-kinesispkg:apk/chainguard/ruby3.3-fluentd-kubernetes-daemonset-1.17-kinesispkg:apk/chainguard/ruby3.3-fluentd-kubernetes-daemonset-1.18-kinesispkg:apk/chainguard/ruby4.0-fluentd-kubernetes-daemonset-1.18-kinesispkg:apk/wolfi/ruby4.0-fluentd-kubernetes-daemonset-1.19-kinesispkg:apk/wolfi/ruby3.4-fluentd-kubernetes-daemonset-1.18-kinesispkg:apk/chainguard/ruby3.2-kube-logging-operator-fluentd-outputspkg:apk/chainguard/ruby3.4-fluentd-kubernetes-daemonset-1.18-kinesispkg:apk/chainguard/ruby3.2-fluentd-kubernetes-daemonset-1.16-kinesispkg:apk/chainguard/ruby3.2-fluentd-kubernetes-daemonset-1.19-kinesispkg:apk/wolfi/ruby3.3-fluentd-kubernetes-daemonset-1.18-kinesispkg:apk/chainguard/ruby3.2-fluentd-kubernetes-daemonset-1.17-kinesispkg:apk/chainguard/ruby3.2-fluentd-kubernetes-daemonset-1.18-kinesispkg:apk/chainguard/ruby3.3-fluentd-kubernetes-daemonset-1.16-kinesispkg:apk/chainguard/ruby4.0-fluentd-kubernetes-daemonset-1.19-kinesispkg:apk/wolfi/ruby3.2-kube-logging-operator-fluentd-outputspkg:apk/chainguard/ruby3.3-fluentd-kubernetes-daemonset-1.19-kinesispkg:apk/chainguard/ruby3.4-fluentd-kubernetes-daemonset-1.19-kinesis
< 1.16.11.1.0-r4+ 24 more
- (no CPE)range: < 1.16.11.1.0-r4
- (no CPE)range: < 1.18.0.1.5-r3
- (no CPE)range: < 6.7.0-r4
- (no CPE)range: < 1.19.3.1.0-r0
- (no CPE)range: < 1.19.3.1.0-r0
- (no CPE)range: < 1.16.11.1.0-r2
- (no CPE)range: < 6.7.0-r4
- (no CPE)range: < 1.19.2.1.1-r5
- (no CPE)range: < 1.17.1.1.2-r9
- (no CPE)range: < 1.18.0.1.5-r4
- (no CPE)range: < 1.18.0.1.5-r3
- (no CPE)range: < 1.19.3.1.0-r0
- (no CPE)range: < 1.18.0.1.5-r3
- (no CPE)range: < 6.7.0-r4
- (no CPE)range: < 1.18.0.1.5-r3
- (no CPE)range: < 1.16.11.1.0-r3
- (no CPE)range: < 1.19.2.1.1-r5
- (no CPE)range: < 1.18.0.1.5-r4
- (no CPE)range: < 1.17.1.1.2-r10
- (no CPE)range: < 1.18.0.1.5-r3
- (no CPE)range: < 1.16.11.1.0-r3
- (no CPE)range: < 1.19.3.1.0-r0
- (no CPE)range: < 6.7.0-r4
- (no CPE)range: < 1.19.3.1.0-r0
- (no CPE)range: < 1.19.3.1.0-r0
Patches
Vulnerability mechanics
References
2News mentions
0No linked articles in our index yet.