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 4.0.0 リリース
Ruby 4.0.0 が公開されました。 Ruby 4.0 には “Ruby Box”、”ZJIT” ほか多数の改善が含まれています。
Posted by naruse on 25 Dec 2025
サイトのアイデンティティの再設計
サイトの包括的なデザインのアップデートを発表できることを嬉しく思います。今回の更新ではTaeko Akatsukaさんにデザインを担当していただきました。
Posted by Hiroshi SHIBATA on 22 Dec 2025
Ruby 4.0.0 preview3 リリース
Ruby 4.0.0-preview3 が公開されました。
Posted by naruse on 18 Dec 2025
Ruby 4.0.0 preview2 リリース
Ruby 4.0.0-preview2 が公開されました。Ruby 4.0では、Unicodeバージョンの17.0.0へのアップデートなど様々な改善が行われています。
Posted by naruse on 17 Nov 2025