{"id":"CVE-2016-2339","aliases":["CLSA-2025-1758023679","DLA-1421-1","EUVD-2016-3423","GHSA-c4w7-m676-pcvp","MGASA-2017-0290","SUSE-SU-2017:0914-1","SUSE-SU-2017:1067-1","SUSE-SU-2020:1570-1","UBUNTU-CVE-2016-2339","USN-3365-1"],"status":"published","title":"An exploitable heap overflow vulnerability exists in the Fiddle::Function.new \"initialize\"...","description":"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.","severity":{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-07","score":0.05144,"percentile":0.92465,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-119"],"published":"2017-01-06T00:00:00Z","modified":"2026-10-24T10:30:33Z","fixes":[{"ecosystem":"TuxCare:CentOS:7","package":"ruby","fixed_in":["2.0.0.648-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"ruby-devel","fixed_in":["2.0.0.648-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"ruby-doc","fixed_in":["2.0.0.648-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"ruby-irb","fixed_in":["2.0.0.648-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"ruby-libs","fixed_in":["2.0.0.648-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"ruby-tcltk","fixed_in":["2.0.0.648-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygem-bigdecimal","fixed_in":["1.2.0-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygem-io-console","fixed_in":["0.4.2-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygem-json","fixed_in":["1.7.7-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygem-minitest","fixed_in":["4.3.2-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygem-psych","fixed_in":["2.0.0-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygem-rake","fixed_in":["0.9.6-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygem-rdoc","fixed_in":["4.0.0-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygems","fixed_in":["2.0.14.1-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:7","package":"rubygems-devel","fixed_in":["2.0.14.1-39.el7_9.tuxcare.els10"],"sources":["osv"]},{"ecosystem":"SUSE:Studio Onsite 1.3","package":"ruby19","fixed_in":["1.9.3.p392-0.26.1"],"sources":["osv"]},{"ecosystem":"SUSE:Studio Onsite Runner 1.3","package":"ruby19","fixed_in":["1.9.3.p392-0.26.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:14.04:LTS","package":"ruby1.9.1","fixed_in":["1.9.3.484-2ubuntu1.3"],"sources":["osv"]},{"ecosystem":"Ubuntu:14.04:LTS","package":"ruby2.0","fixed_in":["2.0.0.484-1ubuntu2.4"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"ruby","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.648-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"ruby-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.648-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"ruby-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.648-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"ruby-irb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.648-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"ruby-libs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.648-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"ruby-tcltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.648-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygem-bigdecimal","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygem-io-console","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.2-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygem-json","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.7.7-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygem-minitest","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.2-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygem-psych","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygem-rake","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.9.6-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygem-rdoc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.0-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygems","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.14.1-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"rubygems-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.14.1-39.el7_9.tuxcare.els10"}]}]},{"source":"osv","ecosystem":"Debian:8","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.5-2+deb8u4"}]}],"versions":["2.1.5-2","2.1.5-2+deb8u1","2.1.5-2+deb8u2","2.1.5-2+deb8u3"],"bundled":25},{"source":"osv","ecosystem":"Mageia:5","package":"ruby","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.p648-1.4.mga5"}]}],"bundled":3},{"source":"osv","ecosystem":"Mageia:6","package":"ruby","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.7-1.mga6"}]}],"bundled":3},{"source":"osv","ecosystem":"SUSE:Studio Onsite 1.3","package":"ruby19","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.3.p392-0.26.1"}]}]},{"source":"osv","ecosystem":"SUSE:Studio Onsite Runner 1.3","package":"ruby19","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.3.p392-0.26.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Desktop 12 SP1","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Desktop 12 SP2","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Software Development Kit 12 SP1","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Software Development Kit 12 SP2","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP1","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 12 SP1","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP2","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 12 SP2","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-15.1"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 7","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 7","package":"yast2-ruby-bindings","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.53-9.8.1"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 12 SP2","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 12 SP2","package":"yast2-ruby-bindings","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.53-9.8.1"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 12 SP3","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Software Development Kit 12 SP4","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Software Development Kit 12 SP5","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP2-LTSS","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP2-LTSS","package":"yast2-ruby-bindings","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.53-9.8.1"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP2-BCL","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP2-BCL","package":"yast2-ruby-bindings","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.53-9.8.1"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP3-LTSS","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP3-BCL","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP4","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 12 SP4","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP5","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 12 SP5","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"SUSE:Enterprise Storage 5","package":"ruby2.1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.9-19.3.2"}]}],"bundled":42},{"source":"osv","ecosystem":"Ubuntu:14.04:LTS","package":"ruby1.9.1","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"]},{"source":"osv","ecosystem":"Ubuntu:14.04:LTS","package":"ruby2.0","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"]},{"source":"osv","ecosystem":"Ubuntu:14.04:LTS","package":"ruby1.9.1","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"],"bundled":7},{"source":"osv","ecosystem":"Ubuntu:14.04:LTS","package":"ruby2.0","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"],"bundled":7},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"ruby2.3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.1-2~16.04.2"}]}],"versions":["2.3.0-1","2.3.0-2","2.3.0-4ubuntu2","2.3.0-4ubuntu3","2.3.0-5ubuntu1","2.3.1-2~16.04"],"bundled":7}],"products":[{"vendor":"hackerone","product":"ruby"},{"vendor":"ruby","product":"ruby"},{"vendor":"ruby-lang","product":"ruby"}],"references":[{"url":"https://lists.debian.org/debian-lts-announce/2018/07/msg00012.html","tags":["mailing-list","x_refsource_MLIST","x_transferred","web"]},{"url":"http://www.securityfocus.com/bid/91234","tags":["vdb-entry","x_refsource_BID","x_transferred","web"]},{"url":"http://www.talosintelligence.com/reports/TALOS-2016-0034/","tags":["x_refsource_MISC","x_transferred","Exploit","Technical Description","Third Party Advisory","VDB Entry","evidence","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-2339"},{"url":"http://www.talosintelligence.com/reports/TALOS-2016-0034"},{"url":"https://github.com/advisories/GHSA-c4w7-m676-pcvp"},{"url":"https://errata.tuxcare.com/els_os/centos7els/CLSA-2025-1758023679.html","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2017-0290.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=20625","tags":["report"]},{"url":"https://usn.ubuntu.com/usn/usn-3365-1/","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2017/suse-su-20170914-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1018808","tags":["report"]},{"url":"https://bugzilla.suse.com/986630","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2016-2339","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2017/suse-su-20171067-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1014863","tags":["report"]},{"url":"https://bugzilla.suse.com/887877","tags":["report"]},{"url":"https://bugzilla.suse.com/909695","tags":["report"]},{"url":"https://bugzilla.suse.com/926974","tags":["report"]},{"url":"https://bugzilla.suse.com/936032","tags":["report"]},{"url":"https://bugzilla.suse.com/959495","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2014-4975","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2015-1855","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2015-3900","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2015-7551","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2020/suse-su-20201570-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1043983","tags":["report"]},{"url":"https://bugzilla.suse.com/1048072","tags":["report"]},{"url":"https://bugzilla.suse.com/1055265","tags":["report"]},{"url":"https://bugzilla.suse.com/1056286","tags":["report"]},{"url":"https://bugzilla.suse.com/1056782","tags":["report"]},{"url":"https://bugzilla.suse.com/1058754","tags":["report"]},{"url":"https://bugzilla.suse.com/1058755","tags":["report"]},{"url":"https://bugzilla.suse.com/1058757","tags":["report"]},{"url":"https://bugzilla.suse.com/1062452","tags":["report"]},{"url":"https://bugzilla.suse.com/1069607","tags":["report"]},{"url":"https://bugzilla.suse.com/1069632","tags":["report"]},{"url":"https://bugzilla.suse.com/1073002","tags":["report"]},{"url":"https://bugzilla.suse.com/1078782","tags":["report"]},{"url":"https://bugzilla.suse.com/1082007","tags":["report"]},{"url":"https://bugzilla.suse.com/1082008","tags":["report"]},{"url":"https://bugzilla.suse.com/1082009","tags":["report"]},{"url":"https://bugzilla.suse.com/1082010","tags":["report"]},{"url":"https://bugzilla.suse.com/1082011","tags":["report"]},{"url":"https://bugzilla.suse.com/1082014","tags":["report"]},{"url":"https://bugzilla.suse.com/1082058","tags":["report"]},{"url":"https://bugzilla.suse.com/1087433","tags":["report"]},{"url":"https://bugzilla.suse.com/1087434","tags":["report"]},{"url":"https://bugzilla.suse.com/1087436","tags":["report"]},{"url":"https://bugzilla.suse.com/1087437","tags":["report"]},{"url":"https://bugzilla.suse.com/1087440","tags":["report"]},{"url":"https://bugzilla.suse.com/1087441","tags":["report"]},{"url":"https://bugzilla.suse.com/1112530","tags":["report"]},{"url":"https://bugzilla.suse.com/1112532","tags":["report"]},{"url":"https://bugzilla.suse.com/1130611","tags":["report"]},{"url":"https://bugzilla.suse.com/1130617","tags":["report"]},{"url":"https://bugzilla.suse.com/1130620","tags":["report"]},{"url":"https://bugzilla.suse.com/1130622","tags":["report"]},{"url":"https://bugzilla.suse.com/1130623","tags":["report"]},{"url":"https://bugzilla.suse.com/1130627","tags":["report"]},{"url":"https://bugzilla.suse.com/1152990","tags":["report"]},{"url":"https://bugzilla.suse.com/1152992","tags":["report"]},{"url":"https://bugzilla.suse.com/1152994","tags":["report"]},{"url":"https://bugzilla.suse.com/1152995","tags":["report"]},{"url":"https://bugzilla.suse.com/1171517","tags":["report"]},{"url":"https://bugzilla.suse.com/1172275","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2015-9096","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2016-7798","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-0898","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-0899","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-0900","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-0901","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-0902","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-0903","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-10784","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-14033","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-14064","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-17405","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-17742","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-17790","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-9228","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2017-9229","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-1000073","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-1000074","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-1000075","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-1000076","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-1000077","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-1000078","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-1000079","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-16395","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-16396","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-6914","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-8777","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-8778","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-8779","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2018-8780","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-15845","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-16201","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-16254","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-16255","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-8320","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-8321","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-8322","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-8323","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-8324","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2019-8325","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-10663","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2016-2339","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-3365-1","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2016-2339","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2009-5147","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2015-1855","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2015-7551","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2015-9096","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2016-2337","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2016-7798","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2016-2339","description":"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.","status":"published","published":"2017-01-06T21:00:00Z","modified":"2024-08-05T23:24:48.934Z","updated_at":"2026-11-02T14:33:33.07583Z"}],"euvd":[{"id":"EUVD-2016-3423","description":"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.","status":"published","published":"2017-01-06T21:00:00Z","modified":"2024-08-05T23:24:48Z","updated_at":"2026-11-03T02:22:53.601545Z"}],"ghsa":[{"id":"GHSA-c4w7-m676-pcvp","title":"An exploitable heap overflow vulnerability exists in the Fiddle::Function.new \"initialize\"...","description":"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.","status":"published","published":"2022-05-14T03:14:14Z","modified":"2025-04-20T03:31:52Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T15:01:38.976438Z"}],"nvd":[{"id":"CVE-2016-2339","description":"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.","status":"published","published":"2017-01-06T21:59:00.493Z","modified":"2026-06-17T00:43:51.13Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T14:03:33.686843Z"}],"osv":[{"id":"CVE-2016-2339","description":"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.","status":"published","published":"2017-01-06T21:59:00.493Z","modified":"2026-10-24T10:30:33.65729662Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:02.114472Z"},{"id":"UBUNTU-CVE-2016-2339","description":"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.","status":"published","published":"2017-01-06T00:00:00Z","modified":"2026-04-22T10:23:46.540606Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:54:11.872222Z"},{"id":"CLSA-2025-1758023679","title":"ruby: Fix of CVE-2016-2339","description":"- CVE-2016-2339: fix heap overflow vulnerability in Fiddle::Function.new\n  'initialize' function","status":"published","published":"2025-09-16T11:54:43Z","modified":"2026-06-01T00:33:06.970294295Z","updated_at":"2026-11-02T15:43:42.025438Z"},{"id":"DLA-1421-1","title":"ruby2.1 - security update","status":"published","published":"2018-07-13T00:00:00Z","modified":"2026-03-09T01:00:51.935861Z","updated_at":"2026-11-02T15:46:09.336894Z"},{"id":"MGASA-2017-0290","title":"Updated ruby packages fix security vulnerabilities","description":"It was discovered that Ruby Net::SMTP incorrectly handled CRLF\nsequences. A remote attacker could possibly use this issue to inject\nSMTP commands. (CVE-2015-9096)\n\nMarcin Noga discovered that Ruby incorrectly handled certain arguments\nin a TclTkIp class method. An attacker could possibly use this issue to\nexecute arbitrary code. This issue only affected Ubuntu 14.04 LTS.\n(CVE-2016-2337)\n\nIt was discovered that Ruby Fiddle::Function.new incorrectly handled\ncertain arguments. An attacker could possibly use this issue to execute\narbitrary code. This issue only affected Ubuntu 14.04 LTS.\n(CVE-2016-2339)\n","status":"published","published":"2017-08-20T09:10:44Z","modified":"2026-04-16T06:26:07.384912092Z","updated_at":"2026-11-02T15:49:40.442238Z"},{"id":"SUSE-SU-2017:0914-1","title":"Security update for ruby19","description":"\nThis update for ruby19 fixes the following issues:\n\nSecurity issue fixed:\n- CVE-2016-2339: heap overflow vulnerability in the Fiddle::Function.new'initialize' (bsc#1018808)\n\nBugfixes:\n- fix small mistake in the backport for (bsc#986630)\n- HTTP Header injection in 'net/http' (bsc#986630)\n- make the testsuite work with our new openssl requirements\n","status":"published","published":"2017-04-03T15:26:04Z","modified":"2026-02-04T04:28:34.715841Z","updated_at":"2026-11-02T15:53:43.83457Z"},{"id":"SUSE-SU-2017:1067-1","title":"Security update for ruby2.1","description":"\nThis ruby2.1 update to version 2.1.9 fixes the following issues:\n\nSecurity issues fixed:\n- CVE-2016-2339: heap overflow vulnerability in the Fiddle::Function.new'initialize' (bsc#1018808)\n- CVE-2015-7551: Unsafe tainted string usage in Fiddle and DL (bsc#959495)\n- CVE-2015-3900: hostname validation does not work when fetching gems or making API requests (bsc#936032)\n- CVE-2015-1855: Ruby'a OpenSSL extension suffers a vulnerability through overly permissive matching of\n  hostnames (bsc#926974)\n- CVE-2014-4975: off-by-one stack-based buffer overflow in the encodes() function (bsc#887877)\n\nBugfixes:\n- SUSEconnect doesn't handle domain wildcards in no_proxy environment variable properly (bsc#1014863)\n- Segmentation fault after pack \u0026 ioctl \u0026 unpack (bsc#909695)\n- Ruby:HTTP Header injection in 'net/http' (bsc#986630)\n\nChangeLog:\n- http://svn.ruby-lang.org/repos/ruby/tags/v2_1_9/ChangeLog\n","status":"published","published":"2017-04-20T06:35:59Z","modified":"2026-02-04T04:00:33.439608Z","updated_at":"2026-11-02T15:53:43.83457Z"},{"id":"SUSE-SU-2020:1570-1","title":"Security update for ruby2.1","description":"This update for ruby2.1 fixes the following issues:\n\nSecurity issues fixed:\n\n- CVE-2015-9096: Fixed an SMTP command injection via CRLFsequences in a RCPT TO or MAIL FROM command (bsc#1043983).\n- CVE-2016-7798: Fixed an IV Reuse in GCM Mode (bsc#1055265).\n- CVE-2017-0898: Fixed a buffer underrun vulnerability in Kernel.sprintf (bsc#1058755).\n- CVE-2017-0899: Fixed an issue with malicious gem specifications, insufficient sanitation when printing gem specifications could have included terminal characters (bsc#1056286).\n- CVE-2017-0900: Fixed an issue with malicious gem specifications, the query command could have led to a denial of service attack against clients (bsc#1056286).\n- CVE-2017-0901: Fixed an issue with malicious gem specifications, potentially overwriting arbitrary files on the client system (bsc#1056286).\n- CVE-2017-0902: Fixed an issue with malicious gem specifications, that could have enabled MITM attacks against clients (bsc#1056286).\n- CVE-2017-0903: Fixed an unsafe object deserialization vulnerability (bsc#1062452).\n- CVE-2017-9228: Fixed a heap out-of-bounds write in bitset_set_range() during regex compilation (bsc#1069607).\n- CVE-2017-9229: Fixed an invalid pointer dereference in left_adjust_char_head() in oniguruma (bsc#1069632).\n- CVE-2017-10784: Fixed an escape sequence injection vulnerability in the Basic authentication of WEBrick (bsc#1058754).\n- CVE-2017-14033: Fixed a buffer underrun vulnerability in OpenSSL ASN1 decode (bsc#1058757).\n- CVE-2017-14064: Fixed an arbitrary memory exposure during a JSON.generate call (bsc#1056782).\n- CVE-2017-17405: Fixed a command injection vulnerability in Net::FTP (bsc#1073002).\n- CVE-2017-17742: Fixed an HTTP response splitting issue in WEBrick (bsc#1087434).\n- CVE-2017-17790: Fixed a command injection in lib/resolv.rb:lazy_initialize() (bsc#1078782).\n- CVE-2018-6914: Fixed an unintentional file and directory creation with directory traversal in tempfile and tmpdir (bsc#1087441).\n- CVE-2018-8777: Fixed a potential DoS caused by large requests in WEBrick (bsc#1087436).\n- CVE-2018-8778: Fixed a buffer under-read in String#unpack (bsc#1087433).\n- CVE-2018-8779: Fixed an unintentional socket creation by poisoned NUL byte in UNIXServer and UNIXSocket (bsc#1087440).\n- CVE-2018-8780: Fixed an unintentional directory traversal by poisoned NUL byte in Dir (bsc#1087437).\n- CVE-2018-16395: Fixed an issue with OpenSSL::X509::Name equality checking (bsc#1112530).\n- CVE-2018-16396: Fixed an issue with tainted string handling, where the flag was not propagated in Array#pack and String#unpack with some directives (bsc#1112532).\n- CVE-2018-1000073: Fixed a path traversal issue (bsc#1082007).\n- CVE-2018-1000074: Fixed an unsafe object deserialization vulnerability in gem owner, allowing arbitrary code execution with specially crafted YAML (bsc#1082008).\n- CVE-2018-1000075: Fixed an infinite loop vulnerability due to negative size in tar header causes Denial of Service (bsc#1082014).\n- CVE-2018-1000076: Fixed an improper verification of signatures in tarballs (bsc#1082009).\n- CVE-2018-1000077: Fixed an improper URL validation in the homepage attribute of ruby gems (bsc#1082010).\n- CVE-2018-1000078: Fixed a XSS vulnerability in the homepage attribute when displayed via gem server (bsc#1082011).\n- CVE-2018-1000079: Fixed a path traversal issue during gem installation allows to write to arbitrary filesystem locations (bsc#1082058).\n- CVE-2019-8320: Fixed a directory traversal issue when decompressing tar files (bsc#1130627).\n- CVE-2019-8321: Fixed an escape sequence injection vulnerability in verbose (bsc#1130623).\n- CVE-2019-8322: Fixed an escape sequence injection vulnerability in gem owner (bsc#1130622).\n- CVE-2019-8323: Fixed an escape sequence injection vulnerability in API response handling (bsc#1130620).\n- CVE-2019-8324: Fixed an issue with malicious gems that may have led to arbitrary code execution (bsc#1130617).\n- CVE-2019-8325: Fixed an escape sequence injection vulnerability in errors (bsc#1130611).\n- CVE-2019-15845: Fixed a NUL injection vulnerability in File.fnmatch and File.fnmatch? (bsc#1152994).\n- CVE-2019-16201: Fixed a regular expression denial of service vulnerability in WEBrick's digest access authentication (bsc#1152995).\n- CVE-2019-16254: Fixed an HTTP response splitting vulnerability in WEBrick (bsc#1152992).\n- CVE-2019-16255: Fixed a code injection vulnerability in Shell#[] and Shell#test (bsc#1152990).\n- CVE-2020-10663: Fixed an unsafe object creation vulnerability in JSON (bsc#1171517).\n\nNon-security issue fixed:\n\n- Add conflicts to libruby to make sure ruby and ruby-stdlib are also updated when libruby is updated (bsc#1048072).\n\nAlso yast2-ruby-bindings on SLES 12 SP2 LTSS was updated to handle the updated ruby interpreter. (bsc#1172275)\n","status":"published","published":"2020-06-09T09:16:12Z","modified":"2026-02-04T03:07:34.074987Z","updated_at":"2026-11-02T15:53:47.634847Z"},{"id":"USN-3365-1","title":"ruby1.9.1, ruby2.0, ruby2.3 vulnerabilities","description":"It was discovered that Ruby DL::dlopen incorrectly handled opening\nlibraries. An attacker could possibly use this issue to open libraries with\ntainted names. This issue only applied to Ubuntu 14.04 LTS. (CVE-2009-5147)\n\nTony Arcieri, Jeffrey Walton, and Steffan Ullrich discovered that the Ruby\nOpenSSL extension incorrectly handled hostname wildcard matching. This\nissue only applied to Ubuntu 14.04 LTS. (CVE-2015-1855)\n\nChristian Hofstaedtler discovered that Ruby Fiddle::Handle incorrectly\nhandled certain crafted strings. An attacker could use this issue to cause\na denial of service, or possibly execute arbitrary code. This issue only\napplied to Ubuntu 14.04 LTS. (CVE-2015-7551)\n\nIt was discovered that Ruby Net::SMTP incorrectly handled CRLF sequences. A\nremote attacker could possibly use this issue to inject SMTP commands.\n(CVE-2015-9096)\n\nMarcin Noga discovered that Ruby incorrectly handled certain arguments in\na TclTkIp class method. An attacker could possibly use this issue to\nexecute arbitrary code. This issue only affected Ubuntu 14.04 LTS.\n(CVE-2016-2337)\n\nIt was discovered that Ruby Fiddle::Function.new incorrectly handled\ncertain arguments. An attacker could possibly use this issue to execute\narbitrary code. This issue only affected Ubuntu 14.04 LTS. (CVE-2016-2339)\n\nIt was discovered that Ruby incorrectly handled the initialization vector\n(IV) in GCM mode. An attacker could possibly use this issue to bypass\nencryption. (CVE-2016-7798)\n","status":"published","published":"2017-07-25T17:52:34Z","modified":"2026-04-27T15:17:29.906084053Z","updated_at":"2026-11-02T16:58:13.496563Z"}]}}
