WEBrick 的文件访问漏洞

Shugo Maeda 于 2008 年 3 月 3 日发布

WEBrick,Ruby 用于实现 HTTP 服务器的标准库,存在文件访问漏洞。

影响

以下程序存在漏洞。

  1. 使用 WEBrick::HTTPServer.new:DocumentRoot 选项发布文件的程序
  2. 使用 WEBrick::HTTPServlet::FileHandler 发布文件的程序

受影响的系统包括

  1. 接受反斜杠(\)作为路径分隔符的系统,例如 Windows。
  2. 使用不区分大小写文件系统的系统,例如 Windows 上的 NTFS,Mac OS X 上的 HFS。

此漏洞的影响如下。

  1. 攻击者可以通过发送带有 URL 编码反斜杠(\)的 URL 来访问私有文件。此漏洞利用仅在接受反斜杠作为路径分隔符的系统上生效。

    示例

    http://[server]:[port]/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/boot.ini
    
  2. 攻击者可以访问与 :NondisclosureName 选项指定的模式匹配的文件(默认值为 [".ht*", "*~"])。此漏洞利用仅在使用不区分大小写文件系统的系统上生效。

受影响的版本

1.8 系列
  • 1.8.4 及之前所有版本
  • 1.8.5-p114 及之前的所有版本
  • 1.8.6-p113 及之前的所有版本
1.9 系列
  • 1.9.0-1 及之前的所有版本

解决方案

1.8 系列
请升级到 1.8.5-p115 或 1.8.6-p114。
1.9 系列
请将以下补丁应用到 lib/webrick/httpservlet/filehandler.rb。

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

致谢

感谢 Digital Security Research Group (<URL:http://dsec.ru/>) 向 Ruby 安全团队披露此问题。

近期新闻

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 日

更多新闻...