CVE Catalog

CVE-2026-71847

HighCVSS 8.7
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.25%

17th percentile - higher than 17% of all known CVEs

Summary

Ruby JSON versions 2.20.0 through 2.21.2 have a heap-use-after-free vulnerability in the native C extension. After consuming the input buffer of JSON::ResumableParser, state pointers remain pointing to released storage, and when partial_value reconstructs an incomplete object with duplicate keys, the duplicate-key warning path dereferences stale pointers, potentially terminating the Ruby process.

Risk Assessment

An attacker supplying JSON stream data to an application using JSON::ResumableParser can cause process termination, leading to service unavailability.

Recommendation

Upgrade the Ruby JSON library to version 2.21.2 or later, which includes the fix.

Other vulnerabilities in Ruby JSON

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS