由 usa 发表于 2018-10-17
翻译: Delton Ding
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)