You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/user/security.md
+43-44Lines changed: 43 additions & 44 deletions
Original file line number
Diff line number
Diff line change
@@ -25,13 +25,12 @@ Other levels will raise `ArgumentError` as in standard Ruby.
25
25
26
26
## MRI Vulnerabilities
27
27
28
-
Vulnerabilities reported against MRI may apply to the design of Ruby or to code
29
-
that we share with MRI. We list reported MRI vulnerabilities here and document
30
-
how MRI has mitigated the vulnerability, if the mitigation is tested by
31
-
anything, and how TruffleRuby has mitigated.
32
-
33
-
Note that *todo* means we just haven't researched and filled the details in
34
-
yet - not that we either believe TruffleRuby is vulnerable or not.
28
+
Vulnerabilities reported against MRI may apply to the design of Ruby or to
29
+
code that we share with MRI. We list reported MRI vulnerabilities here and
30
+
document how MRI has mitigated the vulnerability, if the mitigation is tested
31
+
by anything, and how TruffleRuby has mitigated. We haven't investigated all
32
+
legacy vulnerabilities, as it's often very hard to work out the details from
33
+
older reports.
35
34
36
35
Cross-reference with the details on the MRI website
37
36
https://www.ruby-lang.org/en/security/.
@@ -44,7 +43,7 @@ CVE-2019-8322 | Escape sequence injection in `gem owner` | Sanitise message | Te
44
43
CVE-2019-8323 | Escape sequence injection vulnerability in API response handling | Sanitise message | Tested in `ruby/spec``:security` | Applied the same patch
45
44
CVE-2019-8324 | Installing a malicious gem may lead to arbitrary code execution | Verifying gems before pre-install checks | Tested in MRI `test/rubygems/test_gem_installer.rb` | Applied the same patch
46
45
CVE-2019-8325 | Escape sequence injection in errors | Sanitise error messages | Tested in `ruby/spec``:security` | Applied the same patch
47
-
CVE-2018-16395 | `OpenSSL::X509::Name` equality check does not work correctly | *todo* | *todo* | *todo*
46
+
CVE-2018-16395 | `OpenSSL::X509::Name` equality check does not work correctly | | |
48
47
CVE-2018-16396 | Tainted flags are not propagated in `Array#pack` and `String#unpack` with some directives | Additional taint operations | Tested in `ruby/spec``:security` | Additional taint operations
49
48
CVE-2018-6914 | Unintentional file and directory creation with directory traversal in `tempfile` and `tmpdir` | Sanitization of paths | Tested in `ruby/spec``:security` | Sanitization of paths
50
49
CVE-2018-8779 | Unintentional socket creation by poisoned NUL byte in `UNIXServer` and `UNIXSocket` | Check for NUL bytes | Tested in `ruby/spec``:security` | Check for NUL bytes
@@ -54,46 +53,46 @@ CVE-2017-17742 | HTTP response splitting in WEBrick | Logic for invalid headers
54
53
CVE-2018-8778 | Buffer under-read in String#unpack | A range check | Tested in `ruby/spec``:security` | A range check
55
54
CVE-2017-17405 | Command injection vulnerability in `Net::FTP` | Treat paths in commands explicitly as paths, not general IO commands | Tested in MRI `test/net/ftp/test_ftp.rb` | Applied the same mitigation
56
55
CVE-2017-10784 | Escape sequence injection vulnerability in the Basic authentication of WEBrick | Proper escaping of logs | Tested in MRI `test/webrick/test_httpauth.rb` | Applied the same mitigation
CVE-2015-7551 | Unsafe tainted string usage in Fiddle and DL (regression of the mitigation of CVE-2009-5147) | Additional taint checks | Tested in MRI `test/mri/tests/fiddle/test_handle.rb` | Not applicable as we do not support `$SAFE`, and the `DL` module was removed in Ruby 2.2.0
CVE-2013-2065 | Object taint bypassing in DL and Fiddle in Ruby | Additional taint checks | Tested in MRI `test/mri/tests/fiddle/test_func.rb` | Not applicable as we do not support `$SAFE`, and the `DL` module was removed in Ruby 2.2.0
72
-
CVE-2013-1821 | Entity expansion DoS vulnerability in REXML | *todo* | *todo* | *todo*
73
-
CVE-2013-0269 | Denial of Service and Unsafe Object Creation Vulnerability in JSON | *todo* | *todo* | *todo*
74
-
CVE-2013-0256 | XSS exploit of RDoc documentation generated by `rdoc` | *todo* | *todo* | *todo*
75
-
CVE-2012-5371 | Hash-flooding DoS vulnerability for ruby 1.9 | *todo* | *todo* | *todo*
76
-
CVE-2012-4522 | Unintentional file creation caused by inserting a illegal NUL character | *todo* | *todo* | *todo*
77
-
CVE-2012-4464, CVE-2012-4466 | $SAFE escaping vulnerability about `Exception#to_s` / `NameError#to_s` | *todo* | *todo* | Not applicable as we do not support `$SAFE`
78
-
None | Security Fix for RubyGems: SSL server verification failure for remote repository | *todo* | *todo* | *todo*
79
-
CVE-2011-3389 | Security Fix for Ruby OpenSSL module: Allow 0/n splitting as a prevention for the TLS BEAST attack | *todo* | *todo* | *todo*
71
+
CVE-2013-1821 | Entity expansion DoS vulnerability in REXML | | |
72
+
CVE-2013-0269 | Denial of Service and Unsafe Object Creation Vulnerability in JSON | | |
73
+
CVE-2013-0256 | XSS exploit of RDoc documentation generated by `rdoc` | | |
74
+
CVE-2012-5371 | Hash-flooding DoS vulnerability for ruby 1.9 | | |
75
+
CVE-2012-4522 | Unintentional file creation caused by inserting a illegal NUL character | | |
76
+
CVE-2012-4464, CVE-2012-4466 | $SAFE escaping vulnerability about `Exception#to_s` / `NameError#to_s` | | | Not applicable as we do not support `$SAFE`
77
+
None | Security Fix for RubyGems: SSL server verification failure for remote repository | | |
78
+
CVE-2011-3389 | Security Fix for Ruby OpenSSL module: Allow 0/n splitting as a prevention for the TLS BEAST attack | | |
80
79
CVE-2011-4815 | Denial of service attack was found for Ruby's Hash algorithm (cross-reference CVE-2011-4838, CVE-2012-5370, CVE-2012-5372) | Hashes are made non-deterministic by incorporating process start time | Tested in `ruby/spec``:security` | Hashes are made non-deterministic by incorporating a seed from `/dev/urandom`
81
-
None | Exception methods can bypass `$SAFE` |*todo* | *todo* | Not applicable as we do not support `$SAFE`
82
-
None | FileUtils is vulnerable to symlink race attacks | *todo* | *todo* | *todo*
None | WEBrick has an Escape Sequence Injection vulnerability | *todo* | *todo* | *todo*
80
+
None | Exception methods can bypass `$SAFE` || | Not applicable as we do not support `$SAFE`
81
+
None | FileUtils is vulnerable to symlink race attacks | | |
82
+
CVE-2010-0541 | XSS in WEBrick | | |
83
+
None | Buffer over-run in `ARGF.inplace_mode=` | | |
84
+
None | WEBrick has an Escape Sequence Injection vulnerability | | |
86
85
CVE-2009-5147 | `DL::dlopen` opens libraries with tainted names | Additional taint checks | The `DL` module does not exist in modern Ruby | Not applicable as we do not support `$SAFE`, and the `DL` module was removed in Ruby 2.2.0
0 commit comments