CVE-2018-8780: Dir において NUL 文字挿入により意図しないディレクトリにアクセスされうる脆弱性について
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) 初版
最近のニュース
Ruby 3.3.12 リリース
Ruby 3.3.12 がリリースされました。
Posted by hsbt on 16 Jul 2026
Ruby 3.4.10 リリース
Ruby 3.4.10 がリリースされました。
Posted by nagachika on 30 Jun 2026
Ruby 4.0.2 リリース
Ruby 4.0.2 がリリースされました。
Posted by k0kubun on 16 Mar 2026
Ruby 3.4.9 リリース
Ruby 3.4.9 がリリースされました。
Posted by nagachika on 11 Mar 2026