VDB

CVE-2026-71847

CVE-2026-71847 PUBLISHED CVSS 8.7 HIGH

Reported by GitHub_M · Published August 7, 2026

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.

Risk Scores

CVSS 4.0
8.7
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

Affected Products

VendorProductVersions
rubyjson>= 2.20.0, < 2.21.2
RubyGemsjson2.20.0
chainguardpact-broker-docker-fips0, 0, 0
wolficinc-auditor0, 0, 0
chainguardcinc-auditor0, 0, 0
chainguardpact-broker-docker0, 0, 0
chainguardlogstash-9.50, 0, 0
chainguardruby3.3-rails-8.10, 0, 0
chainguardruby3.2-rails-8.10, 0, 0
rubyjson>= 2.20.0, < 2.21.2, >= 2.20.0, < 2.21.2
wolfiruby3.3-rails-8.10, 0, 0
chainguardruby3.4-rails-8.10, 0, 0
chainguardlogstash-fips-9.50, 0, 0
Cloudflarestream
wolfiruby3.2-rails-8.10, 0, 0
wolfiruby3.4-rails-8.10, 0, 0

Timeline

  • Aug 7, 2026 CVE Published
  • Aug 7, 2026 Coalition ESS Score
  • Aug 8, 2026 EPSS Score
  • Aug 8, 2026 Security Advisory
  • Aug 24, 2026 EPSS Score
  • Aug 27, 2026 EPSS Score
  • Sep 1, 2026 EPSS Score
  • Sep 6, 2026 EPSS Score
  • Sep 9, 2026 EPSS Score
  • Sep 12, 2026 EPSS Score
  • Sep 16, 2026 EPSS Score
  • Sep 18, 2026 EPSS Score
Open in Interactive Console →
$ Console Community · 50/day Open console ›