CVE-2015-1855: Ruby OpenSSL 主機名稱驗證風險
由 zzak 發表於 2015-04-13
翻譯: Juanito Fatas
Ruby 的 OpenSSL 擴展存在一個安全性風險,原因是主機名稱的匹配過於寬容,進而導致像是 CVE-2014-1492 的錯誤。類似的問題也在 Python 當中找到。
本次風險的 CVE 識別號指派為 CVE-2015-1855。
強烈建議您升級 Ruby。
細節
在重新檢視 RFC 6125 以及 RFC 5280 之後,我們發現匹配主機名稱,特別是匹配證書的通配符違反了許多規則。
Ruby 的 OpenSSL 擴展現在提供一個基於字串的匹配演算法,行為更加嚴謹,遵循上述 RFC 所推薦的做法。特別要提的是,不再允許一個 subject/SAN 匹配多於一個通配符。而匹配數值的比對,現在改為不區分大小寫。
本次修正會影響 Ruby OpenSSL::SSL#verify_certificate_identity 方法的行為。
特別說明:
- 主機名稱最左部分只允許一個通配符(wildcard)
- IDNA 名稱現在可以用一個簡單的通配符來匹配(譬如
'\*.domain') - Subject/SAN 應該限制只能使用 ASCII 字元
所有使用受影響版本的使用者應儘速升級。
受影響版本
- 所有 Ruby 2.0 patchlevel 在 645 以前的版本
- 所有 Ruby 2.1 在 2.1.6 以前的版本
- 所有 Ruby 2.2 在 2.2.2 以前的版本
- 主幹 revision 50292 以前的版本
致謝
感謝 Tony Arcieri、Jeffrey Walton 以及 Steffan Ullrich 回報此問題。最初回報此問題的票為 Bug #9644,修正補丁由 Tony Arcieri 以及 Hiroshi Nakamura 提交。
編輯歷史
- 初次發佈於 2015-04-13 12:00:00 (UTC)
最新消息
Ruby 4.0.1 發布
Ruby 4.0.1 已經發布了。
由 k0kubun 發表於 2026-01-13
Ruby 4.0.0 發布
我們很高興宣布 Ruby 4.0.0 發布了。 Ruby 4.0 導入了 Ruby::Box 和 “ZJIT”,以及許多改進功能。
由 naruse 發表於 2025-12-25
Ruby 文件的新樣貌
繼重新設計 ruby-lang.org 之後,我們還有更多消息來慶祝 Ruby 誕生 30 週年: docs.ruby-lang.org 採用了 Aliki—RDoc’s 的全新預設主題。
由 Stan Lo 發表於 2025-12-23
重新設計我們的網站形象
我們很興奮地宣布網站進行了全面改版。這次更新的設計方案是由 Taeko Akatsuka 負責創作。
由 Hiroshi SHIBATA 發表於 2025-12-22