CVE-2026-54696: ruby json Heap-based Buffer Overflow
Vulnerability summary
CVE-2026-54696 is a low (CVSS 3.7) Heap-based Buffer Overflow vulnerability in ruby json. EPSS estimates a 0.38% chance of exploitation in the next 30 days, higher than 30.7% of scored vulnerabilities.
Advisory lineage
Upstream 0 · Downstream 0 · Related 1Timeline
- 30-06-2026PublishedVulnerability first disclosed.
- 01-07-2026Last modifiedVulnerability information updated.
Description
Ruby JSON is a JSON implementation for Ruby. Versions 2.9.0 through 2.19.8 are vulnerable to heap buffer overflow when the JSON generator is provided with an oversized streamed object. When streaming to an IO JSON.dump(obj, io) and JSON::State#generate(obj, io) can write past the internal JSON generator buffer when a streamed object contains an attacker-controlled string near 16 KB. Exploitation would result in a reliable process crash/denial of service. This issue has been fixed in version 2.19.9.
CVSS metrics
8 scores · 8 sources · 1 version- OSV · Red hatEcosystem advisory · calculated3.7LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
- OSV · UbuntuEcosystem advisory · calculated3.7LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
- OSV · DebianEcosystem advisory · calculated3.7LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
- OSV · WolfiEcosystem advisory · calculated3.7LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
- OSV · ChainguardEcosystem advisory · calculated3.7LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
- OSV · RubygemsEcosystem advisory · calculated3.7LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
- NVDNIST3.7LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
EPSS trend
Probability
0.38%
Chance of exploitation in the next 30 days
Percentile
31%
Versus all other CVEs
30-day change
0.00 pp
From 0.38% on 20-09-2026
Known exploited
Compare KEV catalogsNot in any of the 3 tracked catalogs.
Public exploits
0 foundNo public exploits indexed.
Weaknesses
CWE · root cause- CWE-122Heap-based Buffer OverflowA heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().
- CWE-131Incorrect Calculation of Buffer SizeThe product does not correctly calculate the size to be used when allocating a buffer, which could lead to a buffer overflow.
- CWE-787Out-of-bounds WriteThe product writes data past the end, or before the beginning, of the intended buffer.
Affected systems
Chainguard42 products
- cinc-auditor< 7.1.7-r7
- commercial-gitlab-rails-ee-19.1All versions (No fix recorded)
- commercial-gitlab-rails-ee-19.2< 19.2.7-r4
- commercial-gitlab-rails-ee-fips-19.1All versions (No fix recorded)
- commercial-gitlab-rails-ee-fips-19.2< 19.2.7-r4
Redhat30 products
- ruby3.4< 0:3.4.10-31.5.hum1
- ruby3.4-bundled-gems< 0:3.4.10-31.5.hum1
- ruby3.4-default-gems< 0:3.4.10-31.5.hum1
- ruby3.4-devel< 0:3.4.10-31.5.hum1
- ruby3.4-doc< 0:3.4.10-31.5.hum1
Ubuntu8 products
- jrubyAll versions (No fix recorded)
- ruby-jsonAll versions (No fix recorded)
- ruby2.3All versions (No fix recorded)
- ruby2.5All versions (No fix recorded)
- ruby2.7All versions (No fix recorded)
Wolfi6 products
- cinc-auditor< 7.1.7-r7
- jruby-10.1All versions (No fix recorded)
- ruby-3.4All versions (No fix recorded)
- ruby3.2-fluentd-kubernetes-daemonset-1.19-kinesis< 1.19.2.1.1-r6
- ruby3.2-kube-logging-operator-fluentd-outputs< 6.7.0-r8
Debian1 product
- ruby-jsonAll versions (No fix recorded) | < 2.19.9+dfsg-1
Ruby1 product
- json≥ 2.9.0, < 2.19.9
RubyGems1 product
- json≥ 2.9.0, < 2.19.9
7 vendors · 89 products
References
18 links- github.com/ruby/json/security/advisories/GHSA-x2f5-4prf-w687X Refsource CONFIRMARTICLEREPORTAdvisoryWEB
- images.redhat.comARTICLE
Show all 18 references
- github.com/ruby/jsonPACKAGE