由 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)