Skip to content
OpenAdvisories

Description

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.

Affected products

VendorProductAffectedFixed
ohler55 oj < 3.17.2 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 ruby-oj 3.17.3-1 —
Debian 13 ruby-oj 3.16.3-1+deb13u1 —
Debian 12 ruby-oj 3.14.2-1+deb12u1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 ruby-oj No fix yet —
Ubuntu 26.04 LTS ruby-oj No fix yet —
Ubuntu 25.10 ruby-oj No fix yet —
Ubuntu 24.04 LTS ruby-oj No fix yet —
Ubuntu 22.04 LTS ruby-oj No fix yet —
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS ruby-oj No fix yet —
Ubuntu 18.04 LTS ruby-oj No fix yet —
Ubuntu 16.04 LTS ruby-oj No fix yet —
Ubuntu 14.04 LTS ruby-oj No fix yet —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling ruby3.2-fluentd-kubernetes-daemonset-1.19-kinesis 1.19.2.1.1-r5 —
Wolfi rolling ruby3.2-kube-logging-operator-fluentd-outputs +1 6.7.0-r4 —
Wolfi rolling ruby3.3-fluentd-kubernetes-daemonset-1.19-kinesis +2 1.19.3.1.0-r0 —

Affected packages

EcosystemPackageAffectedFixedRecord
RubyGems oj < 3.17.3 3.17.3 GHSA-475m-ph3x-64gp

References