由 Shugo Maeda 发布于 2008 年 3 月 3 日
WEBrick,Ruby 的一个用于实现 HTTP 服务器的标准库,存在文件访问漏洞。
影响
以下程序存在漏洞。
- 使用带有
:DocumentRoot
选项的WEBrick::HTTPServer.new
发布文件的程序 - 使用
WEBrick::HTTPServlet::FileHandler
发布文件的程序
受影响的系统包括
- 接受反斜杠 (\\) 作为路径分隔符的系统,例如 Windows。
- 使用不区分大小写的文件系统的系统,例如 Windows 上的 NTFS,Mac OS X 上的 HFS。
此漏洞有以下影响。
-
攻击者可以通过发送带有 URL 编码的反斜杠 (\\) 的 URL 来访问私有文件。此漏洞仅在接受反斜杠作为路径分隔符的系统上有效。
示例
http://[server]:[port]/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/boot.ini
-
攻击者可以访问与
: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。
- <URL:https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-p115.tar.gz> (md5sum: 20ca6cc87eb077296806412feaac0356)
- <URL:https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p114.tar.gz> (md5sum: 500a9f11613d6c8ab6dcf12bec1b3ed3)
- 1.9 系列
- 请将以下补丁应用于 lib/webrick/httpservlet/filehandler.rb。
- <URL:https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-1-webrick-vulnerability-fix.diff> (md5sum: b7b58aed40fa1609a67f53cfd3a13257)
请注意,您的软件包管理软件可能已经提供了修复此漏洞的软件包。
鸣谢
感谢 Digital Security Research Group (<URL:http://dsec.ru/>) 向 Ruby 安全团队披露此问题。