{"id":"UBUNTU-CVE-2016-2339","details":"An exploitable heap overflow vulnerability exists in the Fiddle::Function.new \"initialize\" function functionality of Ruby. In Fiddle::Function.new \"initialize\" heap buffer \"arg_types\" allocation is made based on args array length. Specially constructed object passed as element of args array can increase this array size after mentioned allocation and cause heap overflow.","modified":"2026-02-04T03:32:45.188814Z","published":"2017-01-06T00:00:00Z","related":["USN-3365-1"],"upstream":["CVE-2016-2339"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2016-2339"},{"type":"REPORT","url":"http://www.talosintelligence.com/reports/TALOS-2016-0034/"},{"type":"ADVISORY","url":"https://ubuntu.com/security/notices/USN-3365-1"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2016-2339"}],"affected":[{"package":{"name":"ruby1.9.1","ecosystem":"Ubuntu:14.04:LTS","purl":"pkg:deb/ubuntu/ruby1.9.1@1.9.3.484-2ubuntu1.3?arch=source&distro=trusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.3.484-2ubuntu1.3"}]}],"versions":["1.9.3.194-8.1ubuntu2","1.9.3.448-1ubuntu1","1.9.3.448-1ubuntu2","1.9.3.484-1ubuntu1","1.9.3.484-1ubuntu2","1.9.3.484-2ubuntu1","1.9.3.484-2ubuntu1.1","1.9.3.484-2ubuntu1.2"],"ecosystem_specific":{"binaries":[{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"libruby1.9.1"},{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"libtcltk-ruby1.9.1"},{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"ri1.9.1"},{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"ruby1.9.1"},{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"ruby1.9.1-dev"},{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"ruby1.9.1-examples"},{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"ruby1.9.1-full"},{"binary_version":"1.9.3.484-2ubuntu1.3","binary_name":"ruby1.9.3"}],"availability":"No subscription required"},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2016/UBUNTU-CVE-2016-2339.json"}},{"package":{"name":"ruby2.0","ecosystem":"Ubuntu:14.04:LTS","purl":"pkg:deb/ubuntu/ruby2.0@2.0.0.484-1ubuntu2.4?arch=source&distro=trusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.484-1ubuntu2.4"}]}],"versions":["2.0.0.299-2","2.0.0.343-1","2.0.0.343-1ubuntu1","2.0.0.353-1","2.0.0.353-1ubuntu1","2.0.0.484-1ubuntu1","2.0.0.484-1ubuntu2","2.0.0.484-1ubuntu2.1","2.0.0.484-1ubuntu2.2"],"ecosystem_specific":{"binaries":[{"binary_version":"2.0.0.484-1ubuntu2.4","binary_name":"libruby2.0"},{"binary_version":"2.0.0.484-1ubuntu2.4","binary_name":"ruby2.0"},{"binary_version":"2.0.0.484-1ubuntu2.4","binary_name":"ruby2.0-dev"},{"binary_version":"2.0.0.484-1ubuntu2.4","binary_name":"ruby2.0-tcltk"}],"availability":"No subscription required"},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2016/UBUNTU-CVE-2016-2339.json"}}],"schema_version":"1.7.3","severity":[{"type":"CVSS_V3","score":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"},{"type":"Ubuntu","score":"low"}]}