Description
An issue was discovered in the OpenSSL library in Ruby before 2.3.8, 2.4.x before 2.4.5, 2.5.x before 2.5.2, and 2.6.x before 2.6.0-preview3. When two OpenSSL::X509::Name objects are compared using ==, depending on the ordering, non-equal objects may return true. When the first argument is one character longer than the second, or the second argument contains a character that is one less than a character in the same position of the first argument, the result of == will be true. This could be leveraged to create an illegitimate certificate that may be accepted as legitimate and then used in signing or encryption operations.
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 9 | ruby2.3 | 2.3.3-1+deb9u4 | DSA-4332-1 |
| Debian 8 | ruby2.1 | 2.1.5-2+deb8u6 | DLA-1558-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | ruby2.5 | 2.5.1-1ubuntu1.1 | USN-3808-1 |
| Ubuntu 16.04 LTS | ruby2.3 | 2.3.1-2~16.04.11 | USN-3808-1 |
| Ubuntu 14.04 LTS | ruby1.9.1 | 1.9.3.484-2ubuntu1.13 | USN-3808-1 |
| Ubuntu 14.04 LTS | ruby2.0 | 2.0.0.484-1ubuntu2.11 | USN-3808-1 |
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| RHEL 7 | ruby +5 | 2.0.0.648-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygem-bigdecimal | 1.2.0-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygem-io-console | 0.4.2-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygem-json | 1.7.7-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygem-minitest | 4.3.2-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygem-psych | 2.0.0-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygem-rake | 0.9.6-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygem-rdoc | 4.0.0-34.el7_6 | RHSA-2018:3738 |
| RHEL 7 | rubygems +1 | 2.0.14.1-34.el7_6 | RHSA-2018:3738 |
| RHEL 3 | rh-ruby23-ruby +5 | 2.3.8-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-bigdecimal | 1.2.8-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-did_you_mean | 1.0.0-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-io-console | 0.4.5-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-json | 1.8.3.1-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-minitest | 5.8.5-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-net-telnet | 0.1.1-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-power_assert | 0.2.6-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-psych | 2.1.0.1-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-rake | 10.4.2-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-rdoc | 4.2.1-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygem-test-unit | 3.1.5-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby23-rubygems +1 | 2.5.2.3-69.el6 | RHSA-2018:3729 |
| RHEL 3 | rh-ruby24-ruby +4 | 2.4.5-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-bigdecimal | 1.3.2-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-did_you_mean | 1.1.0-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-io-console | 0.4.6-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-json | 2.0.4-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-minitest | 5.10.1-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-net-telnet | 0.1.1-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-openssl | 2.0.9-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-power_assert | 0.4.1-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-psych | 2.2.2-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-rake | 12.0.0-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-rdoc | 5.0.0-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-test-unit | 3.2.3-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygem-xmlrpc | 0.2.1-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby24-rubygems +1 | 2.6.14.3-91.el6 | RHSA-2018:3730 |
| RHEL 3 | rh-ruby25-ruby +4 | 2.5.3-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-bigdecimal | 1.3.4-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-did_you_mean | 1.2.0-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-io-console | 0.4.6-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-json | 2.1.0-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-minitest | 5.10.3-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-net-telnet | 0.1.1-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-openssl | 2.1.2-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-power_assert | 1.1.1-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-psych | 3.0.2-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-rake | 12.3.0-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-rdoc | 6.0.1-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-test-unit | 3.2.7-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygem-xmlrpc | 0.3.0-6.el7 | RHSA-2018:3731 |
| RHEL 3 | rh-ruby25-rubygems +1 | 2.7.6-6.el7 | RHSA-2018:3731 |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| RHEL 7.5 EUS | ruby +5 | 2.0.0.648-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygem-bigdecimal | 1.2.0-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygem-io-console | 0.4.2-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygem-json | 1.7.7-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygem-minitest | 4.3.2-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygem-psych | 2.0.0-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygem-rake | 0.9.6-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygem-rdoc | 4.0.0-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.5 EUS | rubygems +1 | 2.0.14.1-34.el7_5 | RHSA-2019:2565 |
| RHEL 7.4 EUS | ruby +5 | 2.0.0.648-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygem-bigdecimal | 1.2.0-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygem-io-console | 0.4.2-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygem-json | 1.7.7-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygem-minitest | 4.3.2-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygem-psych | 2.0.0-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygem-rake | 0.9.6-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygem-rdoc | 4.0.0-34.el7_4 | RHSA-2019:1948 |
| RHEL 7.4 EUS | rubygems +1 | 2.0.14.1-34.el7_4 | RHSA-2019:1948 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP1 | ruby2.5 | 2.5.5-4.3.1 | SUSE-SU-2019:1804-1 |
| SLES 15 | ruby2.5 | 2.5.5-4.3.1 | SUSE-SU-2019:1804-1 |
| SLES 12 SP5 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SLES 12 SP4 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SLES 12 SP3 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
Show 11 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 12 SP2 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SLES 12 SP2 | yast2-ruby-bindings | 3.1.53-9.8.1 | SUSE-SU-2020:1570-1 |
| SUSE WebYast 1.3 | ruby | 1.8.7.p357-0.9.20.3.1 | SUSE-SU-2022:15034-1 |
| SLES for SAP 12 SP5 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SLES for SAP 12 SP4 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SLES for SAP 12 SP3 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SLES for SAP 12 SP2 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SLES for SAP 12 SP2 | yast2-ruby-bindings | 3.1.53-9.8.1 | SUSE-SU-2020:1570-1 |
| SUSE OpenStack Cloud Crowbar 8 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SUSE OpenStack Cloud 8 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SUSE OpenStack Cloud 7 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SUSE OpenStack Cloud 7 | yast2-ruby-bindings | 3.1.53-9.8.1 | SUSE-SU-2020:1570-1 |
| SUSE HPE Helion OpenStack 8 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
| SUSE Enterprise Storage 5 | ruby2.1 | 2.1.9-19.3.2 | SUSE-SU-2020:1570-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 15.1 | ruby-bundled-gems-rpmhelper | 0.0.2-lp151.2.1 | openSUSE-SU-2019:1771-1 |
| openSUSE Leap 15.1 | ruby2.5 | 2.5.5-lp151.4.3.1 | openSUSE-SU-2019:1771-1 |
| openSUSE Leap 15.0 | ruby-bundled-gems-rpmhelper | 0.0.2-lp151.2.1 | openSUSE-SU-2019:1771-1 |
| openSUSE Leap 15.0 | ruby2.5 | 2.5.5-lp151.4.3.1 | openSUSE-SU-2019:1771-1 |
Alpine
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Alpine v3.24 | ruby | 2.5.2-r0 | — |
| Alpine v3.23 | ruby | 2.5.2-r0 | — |
| Alpine v3.22 | ruby | 2.5.2-r0 | — |
| Alpine v3.21 | ruby | 2.5.2-r0 | — |
| Alpine v3.20 | ruby | 2.5.2-r0 | — |
Show 15 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Alpine v3.19 | ruby | 2.5.2-r0 | — |
| Alpine v3.18 | ruby | 2.5.2-r0 | — |
| Alpine v3.17 | ruby | 2.5.2-r0 | — |
| Alpine v3.16 | ruby | 2.5.2-r0 | — |
| Alpine v3.15 | ruby | 2.5.2-r0 | — |
| Alpine v3.14 | ruby | 2.5.2-r0 | — |
| Alpine v3.13 | ruby | 2.5.2-r0 | — |
| Alpine v3.12 | ruby | 2.5.2-r0 | — |
| Alpine v3.11 | ruby | 2.5.2-r0 | — |
| Alpine v3.9 | ruby | 2.5.2-r0 | — |
| Alpine v3.8 | ruby | 2.5.2-r0 | — |
| Alpine v3.7 | ruby | 2.4.5-r0 | — |
| Alpine v3.6 | ruby | 2.4.5-r0 | — |
| Alpine v3.5 | ruby | 2.3.8-r0 | — |
| Alpine v3.4 | ruby | 2.3.8-r0 | — |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2 | ruby +5 | 2.0.0.648-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygem-bigdecimal | 1.2.0-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygem-io-console | 0.4.2-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygem-json | 1.7.7-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygem-minitest | 4.3.2-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygem-psych | 2.0.0-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygem-rake | 0.9.6-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygem-rdoc | 4.0.0-34.amzn2.0.1 | ALAS2-2019-1143 |
| Amazon Linux 2 | rubygems +1 | 2.0.14.1-34.amzn2.0.1 | ALAS2-2019-1143 |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 7 | ruby +5 | 2.0.0.648-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygem-bigdecimal | 1.2.0-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygem-io-console | 0.4.2-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygem-json | 1.7.7-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygem-minitest | 4.3.2-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygem-psych | 2.0.0-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygem-rake | 0.9.6-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygem-rdoc | 4.0.0-34.el7_6 | ELSA-2018-3738 |
| Oracle Linux 7 | rubygems +1 | 2.0.14.1-34.el7_6 | ELSA-2018-3738 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | openssl | < 2.0.9 | 2.0.9 | GHSA-mmrq-6999-72v8 |
| RubyGems | openssl | >= 2.1.0, < 2.1.2 | 2.1.2 | GHSA-mmrq-6999-72v8 |
Advisories 15
- RHSA-2019:2565 Red Hat Security Advisory: ruby security update Red Hat Security Advisories (RHSA) · Jun 29, 2026
- RHSA-2019:1948 Red Hat Security Advisory: ruby security update Red Hat Security Advisories (RHSA) · Jun 29, 2026
- RHSA-2018:3738 Red Hat Security Advisory: ruby security update Red Hat Security Advisories (RHSA) · Jun 29, 2026
- RHSA-2018:3731 Red Hat Security Advisory: rh-ruby25-ruby security, bug fix, and enhancement update Red Hat Security Advisories (RHSA) · Jun 29, 2026
- RHSA-2018:3729 Red Hat Security Advisory: rh-ruby23-ruby security, bug fix, and enhancement update Red Hat Security Advisories (RHSA) · Jun 29, 2026
- RHSA-2018:3730 Red Hat Security Advisory: rh-ruby24-ruby security, bug fix, and enhancement update Red Hat Security Advisories (RHSA) · Jun 29, 2026
- USN-3808-1 ruby1.9.1, ruby2.0, ruby2.3, ruby2.5 vulnerabilities Ubuntu Security Notices (USN) · Apr 22, 2026
- DSA-4332-1 ruby2.3 - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DLA-1558-1 ruby2.1 - security update Debian Security (DSA / DLA) · Mar 9, 2026
- openSUSE-SU-2019:1771-1 Security update for ruby-bundled-gems-rpmhelper, ruby2.5 SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2019:1804-1 Security update for ruby-bundled-gems-rpmhelper, ruby2.5 SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2020:1570-1 Security update for ruby2.1 SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2022:15034-1 Security update for ruby SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2-2019-1143 Important: ruby security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Jan 9, 2019
- ELSA-2018-3738 Important: ruby security update (Oracle Linux 7) Oracle Linux Security Advisories (ELSA) · Nov 29, 2018
References
- https://www.ruby-lang.org/en/news/2018/10/17/openssl-x509-name-equality-check-does-not-work-correctly-cve-2018-16395/
- RHSA-2018:3738 vendor-advisory
- https://www.ruby-lang.org/en/news/2018/11/06/ruby-2-6-0-preview3-released/
- RHSA-2018:3729 vendor-advisory
- https://hackerone.com/reports/387250
- RHSA-2018:3730 vendor-advisory
- RHSA-2018:3731 vendor-advisory
- https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-3-8-released/
- DSA-4332 vendor-advisory
- USN-3808-1 vendor-advisory
- https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-4-5-released/
- https://security.netapp.com/advisory/ntap-20190221-0002/
- https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-5-2-released/
- [debian-lts-announce] 20181028 [SECURITY] [DLA 1558-1] ruby2.1 security update mailing-list
- 1042105 vdb-entry
- openSUSE-SU-2019:1771 vendor-advisory
- RHSA-2019:1948 vendor-advisory
- RHSA-2019:2565 vendor-advisory
- https://www.oracle.com/security-alerts/cpujan2020.html