Posted by usa on 28 Mar 2018
Ruby の組み込みクラス Dir
のいくつかのメソッドにおいて、ディレクトリ名として渡された引数文字列中に NUL 文字を挿入しておくことによって、意図しないディレクトリにアクセスしうるという脆弱性が発見されました。
この脆弱性は、CVE-2018-8780 として登録されています。
詳細
組み込みクラス Dir
のメソッド Dir.open
、Dir.new
、Dir.entries
、Dir.empty?
等では、引数で対象となるディレクトリのパス名を指定します。この際、指定されたパス名中に NUL 文字 (\0
) が含まれていた場合、NUL 文字直前でパス名が完結しているとみなして、そのパス名に対してアクセスしていました。このため、外部からの入力を Dir.open
に与えていた場合、その妥当性をスクリプトで確認していたとしても、意図しないパス名のディレクトリにアクセスしうる場合がありました。
この問題の影響を受けるバージョンの Ruby のユーザーは、速やかに問題の修正されたバージョンに更新してください。
影響を受けるバージョン
- Ruby 2.2.9 以前の全ての Ruby 2.2 系列
- Ruby 2.3.6 以前の全ての Ruby 2.3 系列
- Ruby 2.4.3 以前の全ての Ruby 2.4 系列
- Ruby 2.5.0
- Ruby 2.6.0-preview1
- revision 62989 より前の開発版
クレジット
この脆弱性情報は、ooooooo_q 氏によって報告されました。
更新履歴
- 2018-03-28 23:00:00 (JST) 初版