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 及更早版本
  • 早於 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 回報了這一問題。

歷史

  • 最早發佈於 at 2018-10-17 14:00:00 (UTC)