Vulnerability · Published Aug 7, 2026 · Assigned by GitHub_M

CVE-2026-71847Ruby JSON: JSON::ResumableParser#partial_value dereferences a freed input buffer and crashes on truncated duplicate-key streams

High 8.7

In plain English

A high-severity use-after-free in json from ruby. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 37% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 4.0)8.7High
Exploit odds (30 days)0.4%top 62.8% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

Official description

Ruby JSON is a JSON implementation for Ruby. From 2.20.0 until 2.21.2, Ruby's JSON native C extension clears the consumed JSON::ResumableParser input buffer but leaves state.start, state.cursor, and state.end pointing into released storage. When partial_value reconstructs an incomplete object containing duplicate keys, the duplicate-key warning path calls cursor_position, which dereferences those stale pointers. This results in a heap-use-after-free and can terminate the Ruby process. An attacker who can supply JSON stream data to an application using JSON::ResumableParser may cause process termination when the application calls partial_value on incomplete attacker-controlled input containing duplicate object keys. This issue has been fixed in version 2.21.2.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:13ruby-jsonno fix listedDEBIAN-CVE-2026-71847
Debian:14ruby-json2.21.2+dfsg-1DEBIAN-CVE-2026-71847
RubyGemsjson2.21.2GHSA-9hj4-r449-hfvc
Ubuntu:22.04:LTSruby-jsonno fix listedUBUNTU-CVE-2026-71847
Ubuntu:24.04:LTSruby-jsonno fix listedUBUNTU-CVE-2026-71847
Ubuntu:26.04:LTSruby-jsonno fix listedUBUNTU-CVE-2026-71847
Ubuntu:26.10ruby-jsonno fix listedUBUNTU-CVE-2026-71847

Affected products (as reported)

VendorProductVersions
ruby json >= 2.20.0, < 2.21.2

Weakness: CWE-416 · Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References