Net::HTTPS 漏洞

由 **Shugo Maeda** 于 2007 年 10 月 4 日发布

报告了一个 net/https 库的漏洞。

应在原始公告中找到详细信息: <URL:http://www.isecpartners.com/advisories/2007-006-rubyssl.txt>

影响

该漏洞存在于 http.rb 文件中的 connect 方法,该方法在 SSL 连接协商后未能调用 post_connection_check。由于服务器证书的 CN 未能针对请求的 DNS 名称进行验证,攻击者可以在 SSL 连接中冒充目标服务器。从而消除了 SSL 的完整性和保密性优势。

受影响的版本

1.8 系列
  • 1.8.4 及之前所有版本
  • 1.8.5-p113 及之前所有版本
  • 1.8.6-p110 及之前所有版本
开发版本(1.9 系列)
2006-09-23 之前的所有版本

解决方案

1.8 系列

请升级到 1.8.6-p111 或 1.8.5-p114。

然后您应该使用 Net::HTTP#enable_post_connection_check= 来启用 post_connection_check。

http = Net::HTTP.new(host, 443)
http.use_ssl = true
http.enable_post_connection_check = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
store = OpenSSL::X509::Store.new
store.set_default_paths
http.cert_store = store
http.start {
  response = http.get("/")
}

请注意,您的包管理软件可能已经提供了纠正此弱点的软件包。

开发版本(1.9 系列)
请将您的 Ruby 更新到 2006-09-23 之后 เวอร์전을。Ruby 1.9 上 Net::HTTP#enable_post_connection_check 的默认值为 true。

变更

  • 2007-10-04 16:30 +09:00 为“解决方案”添加了 enable_post_connection_check 的描述。

近期新闻

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 日

更多新闻...