CyberRota Analysis
AI-GeneratedThe Ruby JSON library versions 2.20.0 to 2.21.2 are vulnerable due to a heap-use-after-free condition caused by dereferencing stale pointers in the JSON::ResumableParser when handling incomplete JSON objects with duplicate keys. This vulnerability can lead to application crashes, potentially allowing an attacker to disrupt service by supplying malicious JSON data. Organizations using affected versions of Ruby's JSON library should prioritize upgrading to version 2.21.2 to mitigate this high-severity risk.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD 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.