Posted by Shugo Maeda on 3 Mar 2008
Rubyに標準で添付されているWEBrick
ライブラリにおいて、 このライブラリに含まれるローカルファイルシステム上のファイル
(およびディレクトリ)を公開する機能を使用した場合に、公開を意 図していないリソースにアクセスが可能となる問題が発見されました。
特に、Windowsでこの機能を利用した場合には、ディレクトリトラ バーサルにより、プロセスの権限で読み取り可能な任意のファイル に対するアクセスが可能となります。
影響
この脆弱性は以下の状況で発生します。
WEBrick::HTTPServer.new
の引数として、:DocumentRoot
を指定してファイルを公開する場合WEBrick::HTTPServlet::FileHandler
サーブレットを 利用してファイルを公開する場合
この脆弱性は以下の環境で発生します。
- パスの区切り文字としてバックスラッシュを使用できるシス テム(Windowsなど)
- ファイルにアクセスする際にパス名の大文字と小文字を区別 しないファイルシステム(WindowsのNTFSやMacOSXのHFSなど) を利用しているシステム
この脆弱性により以下のような影響があります。
-
以下のようにURLにエンコードされたバックスラッシュ(\)を 含めることにより、公開対象のディレクトリ以外のファイル にアクセスされる恐れがあります。 これはWindowsのようにパスの区切り文字としてバックスラッ シュを使用するシステムに限ります。
例:
http://[server]:[port]/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/boot.ini
-
FileHandler
の設定項目の: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系
- 以下のパッチを適用してください。
- <URL:https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-1-webrick-vulnerability-fix.diff> (md5sum: b7b58aed40fa1609a67f53cfd3a13257)
Rubyのパッケージを配布している各ベンダから、この脆弱性を修正 した版のパッケージが提供されている場合もあります。詳細につい ては各ベンダにお問い合わせください。
クレジット
この脆弱性はDigital Security Research Group (http://dsec.ru/)により Ruby Security Teamに報告されました。