Advisory Database
  • Advisories
  • Dependency Scanning
  1. gem
  2. ›
  3. json
  4. ›
  5. CVE-2026-71847

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

August 7, 2026

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.

The issue was reproduced in the native C extension from the official RubyGems releases:

  • JSON 2.20.0
  • JSON 2.21.0
  • JSON 2.21.1

The attached evidence demonstrates:

  • an AddressSanitizer-confirmed heap-use-after-free;
  • a native SIGSEGV using the official JSON 2.21.1 RubyGem;
  • an end-to-end loopback TCP attacker/victim reproduction;
  • four differential controls;
  • successful execution after applying a tested patch control.

This was originally reported privately through Ruby’s HackerOne program as report #3867755. A Ruby maintainer independently confirmed reproduction of the ASan failure and requested that further coordination continue through this private advisory.

No code execution or information disclosure is claimed.

References

  • github.com/advisories/GHSA-9hj4-r449-hfvc
  • github.com/ruby/json/security/advisories/GHSA-9hj4-r449-hfvc
  • nvd.nist.gov/vuln/detail/CVE-2026-71847

Code Behaviors & Features

Detect and mitigate CVE-2026-71847 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 2.20.0 before 2.21.2

Fixed versions

  • 2.21.2

Solution

Upgrade to version 2.21.2 or above.

Weakness

  • CWE-416: Use After Free

Source file

gem/json/CVE-2026-71847.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 08 Aug 2026 12:16:14 +0000.