CVE-2018-16395:OpenSSL::X509::Name 相等性检查不正确

Ruby 捆绑的 openssl 扩展库中的 OpenSSL::X509::Name 相等性检查不正确。此漏洞已被分配 CVE 标识符 CVE-2018-16395

详细信息

OpenSSL::X509::Name 的实例包含 CN、C 等实体。只有当所有实体完全相等时,两个 OpenSSL::X509::Name 实例才相等。但是,如果参数(右侧)的实体值以接收者(左侧)的值开头,则相等性检查不正确的错误。因此,如果将恶意的 X.509 证书传递给与现有证书进行比较,则有可能被错误地判断为它们是相等的。

强烈建议 Ruby 用户尽快升级您的 Ruby 安装或采取以下解决方法之一。

受影响的版本

  • Ruby 2.3 系列:2.3.7 及更早版本
  • Ruby 2.4 系列:2.4.4 及更早版本
  • Ruby 2.5 系列:2.5.1 及更早版本
  • Ruby 2.6 系列:2.6.0-preview2 及更早版本
  • 早于主干修订版 r65139

解决方法

openssl 2.1.2 gem 或更高版本包含此漏洞的修复程序,因此,如果您使用的是 Ruby 2.4 或更高版本,请将 openssl gem 升级到最新版本。

gem install openssl -v ">= 2.1.2"

但是,在 Ruby 2.3 系列中,您不能使用 openssl gem 覆盖捆绑的 openssl 版本。请将您的 Ruby 安装升级到最新版本。

鸣谢

感谢 Tyler Eckstein 报告此问题。

历史

  • 最初发布于 2018-10-17 14:00:00 (UTC)
  • 在 2018-10-19 00:00:00 (UTC) 提及主干的修复修订版