CVE-2015-1855: Ruby OpenSSL 主机名验证

zzak 发布于 2015 年 4 月 13 日

Ruby 的 OpenSSL 扩展存在一个漏洞,通过对主机名过于宽松的匹配,可能导致与 CVE-2014-1492 类似的错误。在 Python 中也发现了类似问题。

此漏洞已被分配 CVE 标识符 CVE-2015-1855

我们强烈建议您升级 Ruby。

详情

在审查了 RFC 6125RFC 5280 后,我们发现存在多个主机名匹配违规行为,特别是关于通配符证书。

Ruby 的 OpenSSL 扩展现在将提供一种基于字符串的匹配算法,该算法遵循比以前 *更严格* 的行为,正如这些 RFC 所建议的。特别地,每个主体/SAN 中不允许匹配多个通配符。此外,这些值的比较现在是大小写不敏感的。

此更改将影响 Ruby 的 OpenSSL::SSL#verify_certificate_identity 方法的行为。

具体而言:

  • 只允许在主机名的最左侧有一个通配符字符。
  • IDNA 名称现在只能通过简单的通配符(例如 '*.domain')进行匹配。
  • 主体/SAN 应仅限于 ASCII 字符。

所有运行受影响版本的用户都应立即升级。

受影响的版本

  • Ruby 2.0 所有在 Ruby 2.0.0 patchlevel 645 之前的版本
  • Ruby 2.1 所有在 Ruby 2.1.6 之前的版本
  • Ruby 2.2 所有在 Ruby 2.2.2 之前的版本
  • trunk revision 50292 之前的版本

致谢

感谢 Tony Arcieri、Jeffrey Walton 和 Steffan Ullrich 报告了此问题。最初报告为 Bug #9644,补丁由 Tony Arcieri 和 Hiroshi Nakamura 提交。

历史

  • 最初发布于 2015-04-13 12:00:00 (UTC)

近期新闻

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 的新默认主题,焕然一新。

Stan Lo 发布于 2025 年 12 月 23 日

重新设计我们的网站标识

我们很高兴地宣布对我们的网站进行全面重新设计。此次更新的设计由 Akatsuka Taeko 创作。

Hiroshi SHIBATA 发布于 2025 年 12 月 22 日

Ruby 4.0.0 preview3 发布

我们很高兴地宣布 Ruby 4.0.0-preview3 的发布。Ruby 4.0 引入了 Ruby::Box 和“ZJIT”,并增加了许多改进。

naruse 发布于 2025 年 12 月 18 日

更多新闻...