{"id":"CVE-2018-16395","aliases":["GHSA-mmrq-6999-72v8"],"url":"https://o3.security/vulnerability/CVE-2018-16395","summary":"Ruby Openssl Allows Incorrect Value Comparison","details":"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.","published":"2018-11-16T18:29:00.943Z","modified":"2026-10-24T10:30:35.893506376Z","cvss":{"score":9.8,"severity":"CRITICAL","vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"RubyGems","name":"openssl","fixedVersion":"2.0.9"},{"ecosystem":"RubyGems","name":"openssl","fixedVersion":"2.1.2"}],"fix":{"url":"https://github.com/ruby/openssl/commit/f653cfa43f0f20e8c440122ea982382b6228e7f5","label":"ruby/openssl@f653cfa"},"references":[{"type":"WEB","url":"https://www.oracle.com/security-alerts/cpujan2020.html"},{"type":"ADVISORY","url":"http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00036.html"},{"type":"ADVISORY","url":"http://www.securitytracker.com/id/1042105"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2018:3729"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2018:3730"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2018:3731"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2018:3738"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2019:1948"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2019:2565"},{"type":"ADVISORY","url":"https://lists.debian.org/debian-lts-announce/2018/10/msg00020.html"},{"type":"ADVISORY","url":"https://security.netapp.com/advisory/ntap-20190221-0002/"},{"type":"ADVISORY","url":"https://usn.ubuntu.com/3808-1/"},{"type":"ADVISORY","url":"https://www.debian.org/security/2018/dsa-4332"},{"type":"ADVISORY","url":"https://www.ruby-lang.org/en/news/2018/10/17/openssl-x509-name-equality-check-does-not-work-correctly-cve-2018-16395/"},{"type":"ADVISORY","url":"https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-3-8-released/"},{"type":"ADVISORY","url":"https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-4-5-released/"},{"type":"ADVISORY","url":"https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-5-2-released/"},{"type":"ADVISORY","url":"https://www.ruby-lang.org/en/news/2018/11/06/ruby-2-6-0-preview3-released/"},{"type":"FIX","url":"https://hackerone.com/reports/387250"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2018-16395"},{"type":"WEB","url":"https://github.com/ruby/openssl/commit/f653cfa43f0f20e8c440122ea982382b6228e7f5"},{"type":"WEB","url":"https://www.ruby-lang.org/en/news/2018/11/06/ruby-2-6-0-preview3-released"},{"type":"WEB","url":"https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-5-2-released"},{"type":"WEB","url":"https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-4-5-released"},{"type":"WEB","url":"https://www.ruby-lang.org/en/news/2018/10/17/ruby-2-3-8-released"},{"type":"WEB","url":"https://www.ruby-lang.org/en/news/2018/10/17/openssl-x509-name-equality-check-does-not-work-correctly-cve-2018-16395"},{"type":"WEB","url":"https://web.archive.org/web/20211206015239/https://securitytracker.com/id/1042105"},{"type":"WEB","url":"https://usn.ubuntu.com/3808-1"},{"type":"WEB","url":"https://security.netapp.com/advisory/ntap-20190221-0002"},{"type":"WEB","url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/openssl/CVE-2018-16395.yml"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-24T10:30:35.893506376Z"}}