パスワードを忘れた? アカウント作成
13348463 story
Wine

GNOMEのファイルマネージャーで任意のVBScriptコードを実行可能なバグ「Bad Taste」 32

ストーリー by headless
不味 部門より
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(重大)扱いとなっている。

  • by Anonymous Coward on 2017年07月22日 19時52分 (#3248647)

    Eazel社って2001年に破産したんだよな
    Ximianも買収されちゃったし
    会社は死してオプソソフトを残す
    穴は残さないでほしい

    ここに返信
    • by Anonymous Coward on 2017年07月22日 19時54分 (#3248648)

      オープンソースなんだから、気づいた奴が直せばいいじゃん

      • by Anonymous Coward

        直したのを再配布して、ユーザーに普及させてくれるならね。

        開発元が潰れてるとユーザーが「そのアプリを更新する」という発想がなくなるから、多くのユーザーは脆弱性のあるバージョンを使い続けることになるかと。

        • by Anonymous Coward

          訓練されたオープンソースソフトウェアユーザーはオープンソースソフトウェアの開発が停止した場合フォークしていないかどうかを確認する。されていればそっちに行く。されていなければ諦めて自分でフォークするか、古いバージョンを使い続けるか、そのソフトを捨てるかだな。これがプロプライエタリ・ソフトウェアなら古いバージョンを使い続けるか諦めてそのソフトを捨てるかしかない。
          まあそもそもWineを使ってるような連中はレポジトリのソフトを使うからあんまり関係ないけど。

        • by Anonymous Coward

          何言ってんだかわかんないんだけど、脆弱性残すぐらいならソース公開なんかやめろってこと?

          • by Anonymous Coward

            いや、まず基本的な読解力をつけてから出直した方がいいんでは。

            • by Anonymous Coward

              とりあえずコメントしとけば逃げてない事になってると思ってるんだね。
              配布したソースに対して誰がどうやって責任を負うべきと(あるいはその必要が無いと)思ってるのか
              読解力のありそうなあなたが#3248675を解説してみてよ。

              • by Anonymous Coward

                穴は残さないでほしいってことだと思うよ

        • by Anonymous Coward

          そうなるソフトもあるかもしれませんし
          #3248675の中では、開発元がOSSをいろんな意味で
          潰れてなお、支配し続けているという概念があるのでしょうが…

          実質的には、Linux系OSで使われているソフトのほとんどは
          OS標準のリポジトリーの中にあるので
          セキュリティアップデートはOSの開発元か
          上流にあたるOSの開発元がやってくれるのが普通だったりします。

          最悪、メンテナンスする人がいないから、リポジトリーから廃止される場合もあります。

          ですから、Nautilusが使われ続けているのは
          そういった改修が続けられていることの反映でもあります。

          というか、Linux系OSの大半は、アプリを更新するという概念

      • by Anonymous Coward

        というか、まさにそうしたという話だよねこれ(正確には気づいたので直してくれそうな人に丸投げするために公表した、だが)。

  • by Anonymous Coward on 2017年07月22日 20時11分 (#3248656)

    Wineを導入することによってWindowsを対象とした攻撃が
    影響を及ぼす恐れがある…ホントかよ?

    だなんて思っていた時代が、私にもありました。5分位前です。

    でも、正確にはWindowsを対象とした攻撃というよりも
    gnome環境を対象とした攻撃ということになるのかな?

    まぁ、Wineも使わないし、Gnome系も普通使わないので
    直接的な影響は受けないんですけどね。

    ここに返信
    • by Anonymous Coward on 2017年07月22日 21時04分 (#3248678)

      昔(15年位前?)の雑誌かWebかで見かけた記事を思い出しました。

      うろ覚えですが、Linuxには殆どないのに、Windowsにはウイルスが沢山あって遊べてずるい!何とかして、Linuxでウイルスを動かそう!見たいなノリでした。

      それで、初期のWineを使って有名なウイルスを実行するも、殆ど起動せず、起動しても何も起きなかったりだったけど、1つだけ、Windowsで行っているような悪さはしないけど、Linuxをフリーズさせるウイルスがあって、被害を出せたのは評価できるみたいな結論だった気がします。

    • by Anonymous Coward on 2017年07月22日 20時41分 (#3248667)

      いや。。
      Windows云々以前に
      インジェクション対策の問題かと

      ・エスケープを考慮していない
      ・問答無用の自動実行

      この前提であれば
      シェルスクリプトを用いても成り立ちます
      OSの違いは用いるスクリプト言語の違いでしかない

      # 道具が悪いんじゃない阿呆が悪いのさ

    • by Anonymous Coward on 2017年07月22日 21時43分 (#3248694)

      Wineが生成する奴を利用するのでUnix系がターゲットなんでしょうね。
      しかし.MSIファイルをWindows以外を狙うために作るなんて発想は、仕組み的に出来ることが分かってたとしても中々思い付かないな。

      簡単に引っかかりそうだ。。

      Windows10のBashも同じ運命辿るんだろうな。。

      • 問題のある VBScript を生成しているのは、gnome-exe-thumbnailer であって Wine ではないよ。
        (Wine は VBScript のインタプリンタを実行するのに使ってるだけ)

        しかしなんでまたサムネイルにバージョンの表示なんて余分なことをしようと思ったんだか……。

        --
        svn-init() {
          svnadmin create .svnrepo
          svn checkout file://$PWD/.svnrepo .
        }
      • by Anonymous Coward on 2017年07月23日 5時20分 (#3248773)

        >Windows10のBashも同じ運命辿るんだろうな。。

        Windows Subsystem for Linuxは自分でインストールすることが必要で、
        メニューの場所も知らなきゃわからない深い場所にありますので、
        開発者以外のユーザーは使わないでしょう。

        他にも、標準で入っているPowerShellも、初期設定ではスクリプトの実行が禁止されていたり、
        拡張子*.ps1がメモ帳に関連付けされている(ダブルクリックでは実行できない)など、
        カジュアルユーザーが攻撃を受けないように配慮されています。

        • by Anonymous Coward

          そのへんは今後改善(改悪かもしれないが)される予定ですね。そのうちインサイダー以外でもインストールできるようになるでしょうし。
          http://forest.watch.impress.co.jp/docs/news/1064455.html [impress.co.jp]
          http://gigazine.net/news/20170711-ubuntu-on-windows-store/ [gigazine.net]
          まあWindows上でBashを使うような人がwineを使うとも思えないので今回のような問

        • by Anonymous Coward

          まあWSHのスクリプトがウイルス対策ソフトに削除されて実質使い物にならないようになっちゃったからね。
          同じ失敗を繰り返すわけにはいかんでしょ

      • by Anonymous Coward

        自動ダウンロード有効なWebブラウザで流し込まれたら結構ヤバイ。
        気づいた時や知らないうちにはすでにダウンロード済みで、消そうとしたり別のファイルをダウンロードして開こうとフォルダを見た瞬間アウトだからねぇ。

        • by Anonymous Coward

          windowsにも似たような問題があったがまあスラドユーザーレベルならコマンドをカタカタやっておしまいだろう。

        • by Anonymous Coward

          これは○○用のだから××上で見る分には大丈夫だろう、を完全にあざ笑う方法ですよね。

          警戒したら徒になるとかシャレにならん。。

    • by Anonymous Coward

      えらくスカスカな長文だな…

      • by Anonymous Coward

        この程度で長文って…
        何文字までなら読めるのよ

    • by Anonymous Coward

      本来はウィンドウズ用のファイルと使ってwindows用のコードを使ってLinuxを攻撃できるという話です。
      ウィンドウズ相手には無効なはずです。
      非常にお手軽で危険ですね。見る人が見ればすぐに見破れる攻撃ではあるが。

  • by Anonymous Coward on 2017年07月23日 5時23分 (#3248774)

    そっちにびっくりした。

    ここに返信
  • by Anonymous Coward on 2017年07月23日 12時07分 (#3248833)

    wine を入れると山ほどの 32bit ライブラリがインストールされるし、gnome3 のアクティビティにアイコンが散らばるしで、インストールしたくないんだよな。Nautilus の方は、端末開いて ls 打つ方が楽だよ。

    ここに返信
  • by Anonymous Coward on 2017年07月23日 17時48分 (#3248911)

    英語で "bad taste" ってだけ言うと普通は
    「悪趣味」とか「趣味が悪い/品が無い/下劣な趣味」みたいな方だよね。勿論「不味い」の意味もあるけど、ちょっとなんか違う気が。

    ここに返信
    • by Anonymous Coward

      まずあじ派はかしこいな

    • by Anonymous Coward

      元サイトに、

      > I name this vulnerability Bad Taste. Its logo is a color-shifted logo of Wine

      とあるので、元々からして、不味いワインっていうのと、Linux上でVBScriptを動かすなんてなんという趣味の悪い冗談!っていうので言葉遊びになってるんじゃないですかね?

typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...