CVE-2016-2337
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different...
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different type of object than String as "retval" argument can cause arbitrary code execution.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different type of object than String as "retval" argument can cause arbitrary code execution.
- Record
CVE-2016-2337- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Updated
- 2026-11-02
CVE List No score
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different type of object than String as "retval" argument can cause arbitrary code execution.
- Record
CVE-2016-2337- Updated
- 2026-11-02
EUVDEUVD-2016-3421 No score
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different type of object than String as "retval" argument can cause arbitrary code execution.
- Record
EUVD-2016-3421- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-f58m-77qc-8gjv
9.8
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different...
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different type of object than String as "retval" argument can cause arbitrary code execution.
- Record
GHSA-f58m-77qc-8gjv- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSV
9.8
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different type of object than String as "retval" argument can cause arbitrary code execution.
- Record
CVE-2016-2337- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2016-2337
9.8
Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Attacker passing different type of object than String as "retval" argument can cause arbitrary code execution.
- Record
UBUNTU-CVE-2016-2337- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVCLSA-2025-1759222758 No score
ruby: Fix of 4 CVEs
- CVE-2016-2337: Fix type confusion in _cancel_eval Ruby's TclTkIp class method to prevent arbitrary code execution
- CVE-2017-9224: Fix stack out-of-bounds read in match_at() during regular expression searching
- CVE-2017-9227: Fix stack out-of-bounds read in mbc_enc_len() and invalid pointer dereference in forward_search_range()
- CVE-2017-9228: Fix heap out-of-bounds write in bitset_set_range() and parse_char_class() by initializing critical local variable
- Record
CLSA-2025-1759222758- Updated
- 2026-11-02
OSVMGASA-2017-0290 No score
Updated ruby packages fix security vulnerabilities
It was discovered that Ruby Net::SMTP incorrectly handled CRLF sequences. A remote attacker could possibly use this issue to inject SMTP commands. (CVE-2015-9096)
Marcin Noga discovered that Ruby incorrectly handled certain arguments in a TclTkIp class method. An attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 14.04 LTS. (CVE-2016-2337)
It was discovered that Ruby Fiddle::Function.new incorrectly handled certain arguments. An attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 14.04 LTS. (CVE-2016-2339)
- Record
MGASA-2017-0290- Updated
- 2026-11-02
OSVUSN-3365-1 No score
ruby1.9.1, ruby2.0, ruby2.3 vulnerabilities
It was discovered that Ruby DL::dlopen incorrectly handled opening libraries. An attacker could possibly use this issue to open libraries with tainted names. This issue only applied to Ubuntu 14.04 LTS. (CVE-2009-5147)
Tony Arcieri, Jeffrey Walton, and Steffan Ullrich discovered that the Ruby OpenSSL extension incorrectly handled hostname wildcard matching. This issue only applied to Ubuntu 14.04 LTS. (CVE-2015-1855)
Christian Hofstaedtler discovered that Ruby Fiddle::Handle incorrectly handled certain crafted strings. An attacker could use this issue to cause a denial of service, or possibly execute arbitrary code. This issue only applied to Ubuntu 14.04 LTS. (CVE-2015-7551)
It was discovered that Ruby Net::SMTP incorrectly handled CRLF sequences. A remote attacker could possibly use this issue to inject SMTP commands. (CVE-2015-9096)
Marcin Noga discovered that Ruby incorrectly handled certain arguments in a TclTkIp class method. An attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 14.04 LTS. (CVE-2016-2337)
It was discovered that Ruby Fiddle::Function.new incorrectly handled certain arguments. An attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 14.04 LTS. (CVE-2016-2339)
It was discovered that Ruby incorrectly handled the initialization vector (IV) in GCM mode. An attacker could possibly use this issue to bypass encryption. (CVE-2016-7798)
- Record
USN-3365-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
rubyTuxCare:CentOS:7 |
before 2.0.0.648-39.el7_9.tuxcare.els11 | 2.0.0.648-39.el7_9.tuxcare.els11 |
ruby-develTuxCare:CentOS:7 |
before 2.0.0.648-39.el7_9.tuxcare.els11 | 2.0.0.648-39.el7_9.tuxcare.els11 |
ruby-docTuxCare:CentOS:7 |
before 2.0.0.648-39.el7_9.tuxcare.els11 | 2.0.0.648-39.el7_9.tuxcare.els11 |
ruby-irbTuxCare:CentOS:7 |
before 2.0.0.648-39.el7_9.tuxcare.els11 | 2.0.0.648-39.el7_9.tuxcare.els11 |
ruby-libsTuxCare:CentOS:7 |
before 2.0.0.648-39.el7_9.tuxcare.els11 | 2.0.0.648-39.el7_9.tuxcare.els11 |
ruby-tcltkTuxCare:CentOS:7 |
before 2.0.0.648-39.el7_9.tuxcare.els11 | 2.0.0.648-39.el7_9.tuxcare.els11 |
rubygem-bigdecimalTuxCare:CentOS:7 |
before 1.2.0-39.el7_9.tuxcare.els11 | 1.2.0-39.el7_9.tuxcare.els11 |
rubygem-io-consoleTuxCare:CentOS:7 |
before 0.4.2-39.el7_9.tuxcare.els11 | 0.4.2-39.el7_9.tuxcare.els11 |
rubygem-jsonTuxCare:CentOS:7 |
before 1.7.7-39.el7_9.tuxcare.els11 | 1.7.7-39.el7_9.tuxcare.els11 |
rubygem-minitestTuxCare:CentOS:7 |
before 4.3.2-39.el7_9.tuxcare.els11 | 4.3.2-39.el7_9.tuxcare.els11 |
Show 11 moreShow less
| Package | Affected | Fixed |
|---|---|---|
rubygem-psychTuxCare:CentOS:7 |
before 2.0.0-39.el7_9.tuxcare.els11 | 2.0.0-39.el7_9.tuxcare.els11 |
rubygem-rakeTuxCare:CentOS:7 |
before 0.9.6-39.el7_9.tuxcare.els11 | 0.9.6-39.el7_9.tuxcare.els11 |
rubygem-rdocTuxCare:CentOS:7 |
before 4.0.0-39.el7_9.tuxcare.els11 | 4.0.0-39.el7_9.tuxcare.els11 |
rubygemsTuxCare:CentOS:7 |
before 2.0.14.1-39.el7_9.tuxcare.els11 | 2.0.14.1-39.el7_9.tuxcare.els11 |
rubygems-develTuxCare:CentOS:7 |
before 2.0.14.1-39.el7_9.tuxcare.els11 | 2.0.14.1-39.el7_9.tuxcare.els11 |
ruby2.1Debian:8 |
before 2.1.5-2+deb8u5, plus listed versions 2.1.5-22.1.5-2+deb8u12.1.5-2+deb8u22.1.5-2+deb8u32.1.5-2+deb8u4 |
2.1.5-2+deb8u5 |
rubyMageia:5 |
before 2.0.0.p648-1.4.mga5 | 2.0.0.p648-1.4.mga5 |
rubyMageia:6 |
before 2.2.7-1.mga6 | 2.2.7-1.mga6 |
ruby1.9.1Ubuntu:14.04:LTS |
before 1.9.3.484-2ubuntu1.3, plus listed versions 1.9.3.194-8.1ubuntu21.9.3.448-1ubuntu11.9.3.448-1ubuntu21.9.3.484-1ubuntu11.9.3.484-1ubuntu21.9.3.484-2ubuntu11.9.3.484-2ubuntu1.11.9.3.484-2ubuntu1.2 |
1.9.3.484-2ubuntu1.3 |
ruby2.0Ubuntu:14.04:LTS |
before 2.0.0.484-1ubuntu2.4, plus listed versions 2.0.0.299-22.0.0.343-12.0.0.343-1ubuntu12.0.0.353-12.0.0.353-1ubuntu1 Show 4 moreShow less2.0.0.484-1ubuntu12.0.0.484-1ubuntu22.0.0.484-1ubuntu2.12.0.0.484-1ubuntu2.2 |
2.0.0.484-1ubuntu2.4 |
ruby2.3Ubuntu:16.04:LTS |
before 2.3.1-2~16.04.2, plus listed versions 2.3.0-12.3.0-22.3.0-4ubuntu22.3.0-4ubuntu32.3.0-5ubuntu12.3.1-2~16.04 |
2.3.1-2~16.04.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, products | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2016-2337 is a critical vulnerability (CVSS 9.8) in Hackerone Ruby, published January 6, 2017. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 6.15%, the 93rd percentile. Fixed in ruby 2.0.0.648-39.el7_9.tuxcare.els11.
References
talosintelligence.com/reports/TALOS-2016-0031
securityfocus.com/bid/91233
lists.debian.org/debian-lts-announce/2018/08/msg00028.html
security.gentoo.org/glsa/201710-18
nvd.nist.gov/vuln/detail/CVE-2016-2337
github.com/advisories/GHSA-f58m-77qc-8gjv
Show 13 moreShow less
errata.tuxcare.com/els_os/centos7els/CLSA-2025-1759222758.html
advisories.mageia.org/MGASA-2017-0290.html
bugs.mageia.org/show_bug.cgi?id=20625
usn.ubuntu.com/usn/usn-3365-1
ubuntu.com/security/CVE-2016-2337
ubuntu.com/security/notices/USN-3365-1
cve.org/CVERecord?id=CVE-2016-2337
ubuntu.com/security/CVE-2009-5147
ubuntu.com/security/CVE-2015-1855
ubuntu.com/security/CVE-2015-7551
ubuntu.com/security/CVE-2015-9096
ubuntu.com/security/CVE-2016-2339
ubuntu.com/security/CVE-2016-7798