Arch Linux Security Advisory ASA-202107-25
==========================================

Severity: High
Date    : 2021-07-14
CVE-ID  : CVE-2021-31799 CVE-2021-31810 CVE-2021-32066
Package : ruby2.6
Type    : multiple issues
Remote  : Yes
Link    : https://security.archlinux.org/AVG-2140

Summary
=======

The package ruby2.6 before version 2.6.8-1 is vulnerable to multiple
issues including silent downgrade, arbitrary command execution and
information disclosure.

Resolution
==========

Upgrade to 2.6.8-1.

# pacman -Syu "ruby2.6>=2.6.8-1"

The problems have been fixed upstream in version 2.6.8.

Workaround
==========

None.

Description
===========

- CVE-2021-31799 (arbitrary command execution)

RDoc before version 6.3.1, as bundled with Ruby before version 2.7.4
and 2.6.8 as well as GitLab before version 14.0.2, used to call
Kernel#open to open a local file. If a Ruby project has a file whose
name starts with "|" and ends with "tags", the command following the
pipe character is executed. A malicious Ruby project could exploit it
to run an arbitrary command execution against a user who attempts to
run the rdoc command.

- CVE-2021-31810 (information disclosure)

A security issue has been discovered in Ruby before versions 3.0.2,
2.7.4 and 2.6.8. A malicious FTP server can use the PASV response to
trick Net::FTP into connecting back to a given IP address and port.
This potentially makes Net::FTP extract information about services that
are otherwise private and not disclosed (e.g., the attacker can conduct
port scans and service banner extractions).

- CVE-2021-32066 (silent downgrade)

A security issue has been discovered in Ruby before versions 3.0.2,
2.7.4 and 2.6.8. Net::IMAP does not raise an exception when StartTLS
fails with an unknown response, which might allow man-in-the-middle
attackers to bypass the TLS protections by leveraging a network
position between the client and the registry to block the StartTLS
command, aka a “StartTLS stripping attack”.

Impact
======

A remote man-in-the-middle attacker could strip StartTLS encryption
from IMAP connections to disclose authentication credentials and
emails. Furthermore, a malicious FTP server could induce connections to
an arbitrary IP address and port on a client, leading to potential
information disclosure.

References
==========

https://www.ruby-lang.org/en/news/2021/05/02/os-command-injection-in-rdoc/
https://github.com/ruby/rdoc/commit/a7f5d6ab88632b3b482fe10611382ff73d14eed7
https://github.com/ruby/ruby/commit/483f303d02e768b69e476e0b9be4ab2f26389522
https://github.com/ruby/ruby/commit/fe3c49c9baeeab58304ede915b7edd18ecf360fc
https://www.ruby-lang.org/en/news/2021/07/07/trusting-pasv-responses-in-net-ftp/
https://hackerone.com/reports/1145454
https://github.com/ruby/net-ftp/commit/5709ece67cf57a94655e34532f8a7899b28d496a
https://www.ruby-lang.org/en/news/2021/07/07/starttls-stripping-in-net-imap/
https://hackerone.com/reports/1178562
https://github.com/ruby/net-imap/commit/adba6f0c3e5c5607c4822b9120322eb7e9a77891
https://security.archlinux.org/CVE-2021-31799
https://security.archlinux.org/CVE-2021-31810
https://security.archlinux.org/CVE-2021-32066