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 2.3 系列: 2.3.7 及更早版本
  • Ruby 2.4 系列: 2.4.4 及更早版本
  • Ruby 2.5 系列: 2.5.1 及更早版本
  • Ruby 2.6 系列: 2.6.0-preview2 及更早版本
  • SVN 主干早于 r65139 的全部版本

临时解决方案

openssl gem 2.1.2 之后版本修复了这一缺陷,所以当你正在使用 Ruby 2.4 之后的版本时,直接升级 OpenSSL gem 亦能修复该问题。

gem install openssl -v ">= 2.1.2"

然而在 Ruby 2.3 版本中,你不能覆盖捆绑的 OpenSSL gem,请尽快升级 Ruby 到最新版本。

鸣谢

感谢 Tyler Eckstein 报告了这一问题。

历史

  • 最早发布于 2018-10-17 14:00:00 (UTC)