CVE-2018-6914: Tempfile および Tmpdir でのディレクトリトラバーサルを伴う意図しないファイルまたはディレクトリ作成の脆弱性について

Ruby の標準添付ライブラリである tmpdir で、攻撃者により任意のディレクトリを一時ディレクトリ作成場所として指定可能な脆弱性が発見されました。また、同じく標準添付ライブラリである tempfile も内部で tmpdir を使用しているため、同様に任意のディレクトリを一時ファイル作成場所として指定可能となっていました。 この脆弱性は、CVE-2018-6914 として登録されています。

詳細

標準添付ライブラリ tmpdir によって追加されるメソッド Dir.mktmpdir では、第 1 引数で生成されるディレクトリ名のプレフィックスとサフィックスを指定することができます。このプレフィックスには事実上任意の文字列が指定可能なため、相対ディレクトリ指定 "../" を含めることにより、任意のディレクトリを対象とすることが可能となっていました。 このため、外部の入力をプレフィックスとして指定可能であり、かつ、各ディレクトリに適切なパーミッションが指定されていない場合またはRubyプロセスが不適切に強い権限で実行されている場合には、攻撃者によって任意のディレクトリ上にディレクトリまたはファイルが作成可能となっていました。

この問題の影響を受けるバージョンの 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 62990 より前の開発版

クレジット

この脆弱性情報は、ooooooo_q 氏によって報告されました。

更新履歴

  • 2018-03-28 23:00:00 (JST) 初版