CVE-2016-2338
CWE-787Published: September 29, 2022· Updated: Jun 17, 2026
Official Description
An exploitable heap overflow vulnerability exists in the Psych::Emitter start_document function of Ruby. In Psych::Emitter start_document function heap buffer "head" allocation is made based on tags array length. Specially constructed object passed as element of tags array can increase this array size after mentioned allocation and cause heap overflow.
Risk Analysis
A heap overflow vulnerability exists in the Ruby Psych library due to improper handling of tag array lengths during document initialization. This could lead to memory corruption and arbitrary code execution, warranting a critical severity rating.
There is no public exploit known for this vulnerability, and it is not in the CISA KEV. The flaw is remotely exploitable with low attack complexity.
Update Ruby to a version where this heap overflow has been addressed and apply relevant security patches provided by the distribution.
Technical Analysis
CVE-2016-2338 can be exploited remotely over the network without requiring physical or adjacent access, significantly expanding the attack surface for threat actors.
The vulnerability requires no privileges and no user interaction, making it a prime target for automated exploitation campaigns and worm-like propagation.
A successful exploit results in complete confidentiality breach (data exposure), full integrity compromise (data manipulation), availability disruption (denial of service), with a CVSS base score of 9.8.
From a weakness classification perspective (CWE-787): Out-of-bounds write vulnerabilities can lead to data corruption, crashes, or arbitrary code execution.
CVSS v3.1 Vector Breakdown
Affected Vendors & Products
Exploit & PoC Resources
Official Patches & Advisories
All References (6)
Quick Facts
Related CVEs (CWE-787)
Recommended Actions
- →Apply vendor patches immediately
- →Monitor CVE-2016-2338 in threat intel feeds
- →Review IDS/IPS signatures for exploitation attempts