GNOMEのファイルマネージャーに任意のVBScriptコード実行できる脆弱性

2017年7月23日 10:36

印刷

記事提供元:スラド

GNOMEのファイルマネージャー「GNOME File (Nautilus)」で任意のVBScriptコードを実行可能な脆弱性「Bad Taste」が発見された(発見者による解説記事The Registerの記事Neowinの記事Bleeping Computerの記事CVE-2017-11421)。

問題はWindowsの実行ファイル(.exe)やWindowsインストーラーパッケージ(MSIファイル: .msi)などのアイコンをGNOME File上で表示するために使われる「gnome-exe-thumbnailer」のバージョン0.9.4-2以前に存在し、Wineがインストールされた環境で再現する。また、GNOME Fileのほか、「Cinnamon Nemo」や「MATE caja」といったファイルマネージャーも影響を受けるとのこと。

バージョン0.9.4-2までのgnome-exe-thumbnailerはMSIファイルを処理する際、Wineが利用できる場合には一時ファイルとしてVBSファイルをテンプレートから生成し、スクリプトを実行して「WindowsInstaller.Installer」オブジェクトからファイルバージョンを抽出する。しかし、スクリプトにはMSIファイルのファイル名が記述されるため、VBScriptコードとして解釈可能なファイル名にすることで任意のVBScriptコードを実行可能になる。
生成されるVBSファイルの問題部分は以下のようなものだ。 Set DB = WI.OpenDatabase("ファイル名",0)

 VBScriptではコロン(:)で区切って複数のステートメントを1行に記述できるようになっており、引用符(')以下はコメントとして扱われる。

そのため、ファイル名を

 poc.msi",0):ステートメント1[:ステートメント2[...]]'.msi

 のようにすると該当部分のコードは

 Set DB = WI.OpenDatabase("poc.msi",0):ステートメント1[:ステートメント2[...]]'.msi

 となり、「Set DB = WI.OpenDatabase("poc.msi",0)」に続いてステートメントが順に実行され、最後の拡張子部分はコメント扱いになる。なお、PoCでは「poc.msi」を生成後、コードを含む名前のファイルにコピーしている。そのため、「WI.OpenDatabase」では「poc.msi」を読み込んでいる可能性もあるが、詳細は不明だ。

このバグはgnome-exe-thumbnailer 0.9.5-1でVBScriptを使用する部分をmsiinfoからのファイルバージョン取得に置き換える形で修正された。ファイル名に含めるコードの内容は攻撃者の腕次第であり、コードはユーザーの権限で実行されるが、Debianのバグリポートではgrave(重大)扱いとなっている。

 スラドのコメントを読む | オープンソースセクション | オープンソース | セキュリティ | バグ | Wine | GNOME

 関連ストーリー:
開発に使われたPCがウイルスに感染していたためにウイルスが混入したと見られるAndroidアプリ、多数見つかる 2017年03月08日
新ブラウザ「Edge」ではActiveXやVBScriptがサポート外に 2015年05月11日
WineはChrome OS上では動かない 2014年04月09日

※この記事はスラドから提供を受けて配信しています。

関連キーワード

関連記事