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

WindowsのGDI+にバッファ オーバーラン脆弱性 60

ストーリー by GetSet
悪用される前に塞いでおこう 部門より

Anonymous Coward 曰く、 "セキュリティホール memo経由、Microsoftセキュリティガイダンスセンターの発表(MS04-028)より。
WindowsのコンポーネントであるGDI+に、バッファオーバーランにより「JPEG ファイルを用いて任意のコードを実行させることが可能」となる脆弱性が発見された。Microsoftのアナウンスでは「最大深刻度 : 緊急」となっている。
影響の有無やセキュリティホールが完全に塞がったのかどうかの判断がやや複雑だが、

  • バージョン 5.1.3102.1355 以前の Gdiplus.dll
  • バージョン 10.0.6714.0 より前の Mso.dll
  • バージョン 6.0.2800.1411 より前の Vgx.dll
がこの脆弱性の影響を受けるということらしい。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 今回の件を理由にして (スコア:3, おもしろおかしい)

    by hurryrabbit (23829) on 2004年09月16日 11時16分 (#623128)
    管理者に各パソコンのJPEG画像を収集されてチェックされたりとかするかも。

    #「ツール」→「インターネットオプション」→「ファイルの削除」ですよ(ぼそ
  • by mizzz (2753) on 2004年09月17日 17時10分 (#623758) ホームページ
    タレコミの本文がたまたま下記のように改行されてて変な妄想をしてしまいました。

    ・・・Microsoftセキュリティガイ
    ダンスセンター・・・

    Microsoft Security Guy Dance Center
  • by T.Sawamoto (4142) on 2004年09月17日 9時59分 (#623581)
    FAQ [microsoft.com]を見ると、
    Q. 脆弱性のあるモジュールはなんですか?また、バージョン番号はいくつですか?
    A. 脆弱性が存在するモジュールは gdiplus.dll です。このモジュールのバージョン番号が 5.1.3102.1355 未満の場合、脆弱性が存在します。
    とありますね。
    でも、よく寄せられる質問 [microsoft.com]には、
    SMS は Gdiplus.dll ファイルの存在を検索することができます。このセキュリティ情報に記載されている影響を受けるプログラムおよびコンポーネントについて、バージョン 5.1.3102.1355 以前の Gdiplus.dll のすべてのバージョンを更新する必要があります。
    とあるし、以前なのか未満なのか、どっちなんだろう?

    # これも別の意味で"DLL HELL"だ…。
    • 開発で使用しているものなので、ひっそり調査しているのですが、ここ [microsoft.com] の「セキュリティ更新プログラムに関する情報」→「Visual Studio .NET 2003 (《...略》を含む)」→「ファイルに関する情報」を見ると、gdiplus.dll のバージョンは "5.1.3102.1355" となっているのですが、実際にインストールされたっぽい

      C:\WINNT\Microsoft.NET\Framework\v1.1.4322\gdiplus.dll

      のプロパティを開くと、バージョンは "5.1.3102.1360" となっていて、日付とかも結構違ったりしている。

      # つか、今ごろ発表されたにしては随分古い日付だよなぁ (^_^;

      んで、本当にこのファイルなのかなぁとか思って、さっきのページのすぐそばに書いてある「レジストリ キーの確認」ってところにあるレジストリ キーを見てみたんだけど、インストールしたファイルのパスどころか、ファイル名すら書かれていなかったり。

      。。。ねぇ、この辺り、物凄い勢いで電話で質問しても、インシデント、消費する? >マイクロソフトさま

      --
      むらちより/あい/をこめて。
      親コメント
      • C:\WINNT\Microsoft.NET\Framework\v1.1.4322\gdiplus.dll

        今、system32 の下を覗いて見たら、先のサイトに記述されていたのと同じバージョン・日付の gdiplus.dll を見つけることができました。 system32 フォルダ自体の更新日時が、アップデートを行なった日時と大体一致するので、多分こっちが実際にインストールされた DLL なのだと思われます。

        と、いうことは、 "5.1.3102.1355" 以降が安全、未満はだめ、ってことでいいのかな?

        ただ、MS の配布する DLL は、ターゲットにしている OS のバージョンに合わせてバージョン番号を変えていたりすることがあるので、単純にこの番号よりも大きい数字なら大丈夫というものではないのかもしれません (うう、頭痛い +_+/)。

        --
        むらちより/あい/をこめて。
        親コメント
    • by Anonymous Coward
      ># これも別の意味で"DLL HELL"だ…。

      「デリヘル」?
      『……チェンジお願いします』とか。

      #利用したことはないのでAC
  • by Wankoro (13537) on 2004年09月16日 10時31分 (#623104)
    セキュリティ向上の為、更新プログラムを適用しましょう。
    緊急事態を回避するためにServicePack2を適用することもお勧めします。


    担当されてる業者さんにとってはそれが緊急事態だったりしますが…
  • GDI (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2004年09月16日 12時59分 (#623195)
    GDIエンジン [mitsubishi-motors.com]でオーバーランする話かと思った・・・・
    • by targz (14071) on 2004年09月16日 14時03分 (#623234) 日記
      三菱はもともとエンジン屋だったので、エンジンはまともだと思うです。
      その周辺の設計がええ加減だったということで。
      親コメント
      • 三菱が悪いと言われているのは設計がいい加減悪いのではなく
        試験実験のおこ足りとそれをフィードバックする環境がなかったことですよ。<本件と違いますが・・・・
      • by Anonymous Coward
        つまり,「GDI+」の「+」がタコ?
    • by Anonymous Coward
      ほい。 [google.co.jp]
  • by znc (2768) on 2004年09月16日 14時06分 (#623237)
    今回の問題ですが、XPの場合はSP2を入れなくても何とかなるんですよね?

    SP2前提だとすると・・・企業内端末担当者は頭が痛いでしょうね
    --
    『今日の屈辱に耐え明日の為に生きるのが男だ』
    宇宙戦艦 ヤマト 艦長 沖田十三氏談
    2006/06/23 JPN 1 - 4 BRA
    • by Inetpub (20077) on 2004年09月16日 14時11分 (#623240)
      XPの場合ですとKB833987を当てればいいみたいです。
      ただ最初からIE6SP1と.NETFramework1.1が入ってたりしますので
      さらにKB867801と.NET 1.1 SP3が必要になります。
      全てWindowsUpdateから適用可能です。
      親コメント
  • by yellow tadpole (7084) on 2004年09月16日 21時31分 (#623406) 日記
    JPEG ファイルを用いて任意のコードを実行させることが可能

    セキュリティホールを1つ1つ潰していくことより、こういう動作をするdllを
    作るほうがずっと難しそうな気がするんだけどなあ。
    --
    〜◍
    • Re:難易度 (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2004年09月16日 23時21分 (#623444)
      なんで?
      そんなことないでしょ。
      うっかりしただけで穴はあくわけで。
      親コメント
    • by polpol (23619) on 2004年09月17日 0時31分 (#623485)
      難しいという根拠は?

      メモリ領域チェックを怠っていればいくらでも作れるでしょう。
      たとえば、C言語の標準関数であるscanf系の関数を使うという実装が考えられます。

      ただ、ソースなしにこの「任意のコードを実行する」までには、それなりの解析が必要で、発見が難しいだけです。
      発見が難しいだけで、方法がわかれば、一般的には任意のコードの実行が特別難しいわけではありません。
      ※アセンブラが難しいとかいう突っ込みはなし
      親コメント
      • by yellow tadpole (7084) on 2004年09月17日 1時02分 (#623495) 日記
        メモリ領域の管理を怠ってないかどうかを自動診断するチェッカーって
        作るの難しいのかなあ?
        少なくともGDI+のコードを起こすより簡単そうに思うんだけど。
        --
        〜◍
        親コメント
        • まず、メモリマネージャを自作。
          で、メモリはそこから確保。
          アクセスするときはデバッグ機能を一緒に使うようなマクロを作り、
          それを介して読み書きするようなコーディングで。
          あとはそのデバッグ機能の部分でエリアチェックなりヒープヘッダ
          調べるなりお好きなように。
          --

          --
          Ath'r'onならfloatあたりに自信が持てます
          親コメント
  • by Anonymous Coward on 2004年09月17日 20時15分 (#623803)
    JPEGじゃないけど
    gdk-pixbufにも似たような脆弱性が。 [itmedia.co.jp]
  • by Anonymous Coward on 2004年09月16日 10時20分 (#623101)
    IEだけじゃなくてSusieやネスケででも発症するのかな?
    • Re:Windowsすべて? (スコア:4, 参考になる)

      by Yuryu (19524) on 2004年09月16日 10時24分 (#623102) ホームページ
      今回のセキュリティホールは GDI+ のもので
      これを使わない大多数のアプリは影響ありません。

      Susie や Mozilla は、自前のjpeg展開エンジンをもっていますし
      GDI+ を利用していませんので、影響を受けないと思います

      GDI+ には JPEG や PNG のサポートがあり
      これを利用している場合にのみ影響を受けると思われますが
      GDI+ 自体を利用しているアプリが少ないので
      おそらく、そんなに心配することはないかと...
      親コメント
      • Re:Windowsすべて? (スコア:3, 参考になる)

        by Anonymous Coward on 2004年09月16日 10時32分 (#623105)
        >GDI+ 自体を利用しているアプリが少ないので
        >おそらく、そんなに心配することはないかと...
        .NET Framework の描画系。
        VM では GDI+ の引数チェックをしない/できないからごにょごにょ...
        親コメント
        • by Anonymous Coward
          MonoのWindows版もMicrosoft版gdiplus.dll使ってますか? UNIX版で使われているNovell版libgdiplusはCairo [cairographics.org]のラッパーなんですが。
      • Re:Windowsすべて? (スコア:2, 参考になる)

        by Inetpub (20077) on 2004年09月16日 10時55分 (#623117)
        Microsoft製以外のソフトでは以下のものに脆弱性のあるGdiplus.dllを発見しました。

        Macromedia Flash MX2004
        Serious Samurize v1.55

        つかWindowsUpdateを自動適用してるPCが全て起動時のダイヤログで
        停止するので 今、OKボタンを押す作業に追われています。
        親コメント
        • Re:Windowsすべて? (スコア:2, 参考になる)

          by Anonymous Coward on 2004年09月16日 12時17分 (#623170)
          Ulead DVD MovieWriter 3 SE にも発見。
          この様子だと全マシンで「Gdiplus.dll」を探したほうがよさげですね。
          親コメント
          • Re:Windowsすべて? (スコア:1, 参考になる)

            by Anonymous Coward on 2004年09月16日 18時49分 (#623344)
            ウチのマシン(98SE)で検索
            「Gdiplus.dll」5.1.3097.0
                          「2ちゃんねるターボ」orz、・・・外そう
            「Vgx.dll」 5.1.3097.0
                          \Common Files\Microsoft Shared\VGX\
            親コメント
      • Re:Windowsすべて? (スコア:2, 参考になる)

        by Anonymous Coward on 2004年09月16日 13時43分 (#623224)
        WindowsUpdateは済んでるし、と安心してたんだけど一応gdiplus.dllを検索してみた。
        そしたら、.NET配下のディレクトリにあるものは新しいんだけど、system32の下にやたら古い日付のが残ってる…
        さらに、以前必要に迫られてインストールしたVisioViewer配下のディレクトリにも、さらにCommon Files\Microsoft Shared\Inkにも古いものが。

        自社製品分くらい全部洗ってくれ~

        #んで、それぞれを最新のに置き換えて問題ないのだろうか…
        親コメント
        • by Anonymous Coward on 2004年09月16日 16時34分 (#623293)
          .NET配下のディレクトリというのは
          %systemroot%\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.1360_x-ww_24a2ed47
          等でしょうか?

          私の環境では %systemroot% の中を検索してみただけで古いのが3つ見つかりました。
          そのうち2つは %systemroot%\WinSxS\x86_Microsoft.Windows.GdiPlus・・・なのですが、
          %systemroot%\system32\gdiplus.dll が 5.1.3097.0 ・・・

          DLLの検索順とかで大丈夫なのか、かなりヤバイのかどちらなんでしょうか?
          親コメント
          • Re:Windowsすべて? (スコア:2, 参考になる)

            by Anonymous Coward on 2004年09月16日 19時27分 (#623369)
            Full-DisclosureのMLに テスト用のファイル [netsys.com]が流れていました。

            早速 XP SP1(MS04-028適用済み)で試してみると心配していた通り、
            Explorerがクラッシュしました。

            %systemroot%\system32\gdiplus.dll が古いバージョンなのが原因だと思います。
            MS04-028を当てた方で同じような方おられますか?
            親コメント
            • by Anonymous Coward on 2004年09月17日 1時30分 (#623502)
              %systemroot%\system32\gdiplus.dll が古いバージョンのままなのは
              今回の修正がサイド・バイ・サイドのディレクトリやDLLの作成と
              それに関連するレジストリの修正のようですね。

              サイド・バイ・サイドは良く知らないのですが、
              この残っている古いDLLを使用してしまうアプリが無いのか気になります。

              また、少なくとも、関連するDLLをロードしているアプリは再起動しないと
              セキュリティ・ホールを抱えたままになるわけですが
              そういったメッセージって出ませんでしたよね?

              # まぁ、私の場合はここ1週間で3回ほど停電しているので
              # 攻撃が流行る前にリブートしていたでしょうけど (苦笑)
              親コメント
              • by Anonymous Coward on 2004年09月17日 23時01分 (#623892)
                %systemroot%\system32\gdiplus.dll が古いバージョンのままなのは
                本来その位置にgdiplus.dllはあり得ません。サードパーティー製のアプリケーションやPC使用者がMicrosoftの再配布ポリシーに反して導入した可能性があります。

                サイド・バイ・サイドは良く知らないのですが、
                この残っている古いDLLを使用してしまうアプリが無いのか気になります。
                今回の更新では修正済みのgdiplus.dllへのリダイレクトを指示する新しい発行元構成ファイルもインストールされるため、通常「間違って」古いSide-by-Side DLLが使用されることはありません。詳しくは以下の資料をご覧ください。
                共有アセンブリとアプリケーションへのサービスの提供 [microsoft.com]

                また、少なくとも、関連するDLLをロードしているアプリは再起動しないとセキュリティ・ホールを抱えたままになるわけですがそういったメッセージって出ませんでしたよね?
                「メッセージを出さなかった」のは"Microsoft GDI+ 検出ツール" (あるいはWindows Update) のことでしょうか? このツールはMicrosoftの製品についての検出ツールです。サードパーティー製のアプリケーションはサポートしていません。

                また、Windowsのファイルシステムではロード中のDLLの上書きができないため、問題のDLLを使用中のアプリケーションが存在するとDLLを更新できません。
                そのため Side-by-Side アセンブリのインストールでは旧バージョンのDLLを上書きするのではなく、バージョンごとに異なるフォルダにインストールを行います。これにより旧DLLを利用中のアプリケーションがあってもSide-by-Sideアセンブリのインストールは正常に終了します。
                しかし、古いDLLを利用中のアプリケーションが依然実行中の可能性がありますので、Process Explorer [sysinternals.com]でそのようなアプリケーションを検索し、手動でアプリケーションの再起動を行う必要があるでしょう。
                親コメント
              • by Anonymous Coward on 2004年09月18日 1時15分 (#623967)
                今回の更新では修正済みのgdiplus.dllへのリダイレクトを指示する新しい発行元構成ファイルもインストールされるため、通常「間違って」古いSide-by-Side DLLが使用されることはありません。詳しくは以下の資料をご覧ください。 共有アセンブリとアプリケーションへのサービスの提供 [microsoft.com]
                丁寧な解説ありがとうございます。
                Side-by-Sideのしくみについては全くといっていいほど知らないので、
                少しずつ勉強したいと思います。
                そのため Side-by-Side アセンブリのインストールでは旧バージョンのDLLを上書きするのではなく、バージョンごとに異なるフォルダにインストールを行います。これにより旧 DLLを利用中のアプリケーションがあってもSide-by-Sideアセンブリのインストールは正常に終了します。
                そして、新しいフォルダにインストールした後、
                Side-by-Side関連のレジストリの修正を行うという理解でよろしいでしょうか?
                しかし、古いDLLを利用中のアプリケーションが依然実行中の可能性がありますので、Process Explorer [sysinternals.com]でそのようなアプリケーションを検索し、手動でアプリケーションの再起動を行う必要があるでしょう。
                やはりそうですよね。
                3rd party のアプリまでとはいいませんが、このDLLをロードする自社製アプリについては
                インストーラでチェックして警告を出して欲しいと思いました。
                アップデートしたと安心していて、立ち上げたままのアプリが攻撃される可能性がありますよね。
                ExplorerもこのDLLをロードしますし、ログオフせずにサスペンドやスリープにしている人も結構いそうです。
                親コメント
      • by pnp0a03_pc (7186) on 2004年09月16日 10時46分 (#623111) 日記
        Program Filesの下でgdiplus.dll探したら一つありました。

        確かGDI+ってgdiplus.dllを製品に含めた再配布が可能だったと思うのですが、このようにディレクトリ別に置いてある場合、今回のパッチ当てで脆弱性は解消されるのかしらん。

        親コメント
      • by Anonymous Coward on 2004年09月16日 21時42分 (#623409)
        Mozilla +SVG ビルドガイド
        http://jt.mozilla.gr.jp/projects/svg/build.html
        [mozilla.gr.jp]
        によると、WindowsではSVG テキストと 要素に対応するために、GDI+を使っているようです。

        ご指摘のとおりJpegの展開ではこの影響を受けないでしょうが、もしSVGサポートがデフォルトでONになっていたら、Mozilla もどこかで影響受けていたかもしれません。
        親コメント
      • by Anonymous Coward
        ISV向けの情報がでましたね。
        http://www.microsoft.com/japan/security/bulletins/ishv_faq.mspx
        当分は尾を引きそうですな。
    • Re:Windowsすべて? (スコア:2, 参考になる)

      by aquaforest (17246) on 2004年09月16日 14時15分 (#623241)
      XPだと、標準で入っている画像とファックスビューアに利用されて居るみたいですね。

      参照:http://support.microsoft.com/default.aspx?scid=kb;ja;329270 [microsoft.com].

      SP2と言い、他のアプリケーションで使っている開発者の方々は
      MSの変更でどれだけ頭を悩ませている事やら。
      --


      #きっと、可能性っていうのはその辺に落ちているんだけど
      #気がつかない物じゃないかなと思う。
      親コメント
  • by Anonymous Coward on 2004年09月16日 10時42分 (#623108)
    そういえば昨夜Windows Updateを実行した時に、
    なんかGDI+を利用したソフトウェアをWindows Updateが検索をかけてました。

    確か4つくらい探してて.NET Framework,Picture It!あたりを探してたのは覚えてるんだけど、
    あとは何を探してたっけなぁ...

    # 全部覚えてなくて申し訳ないのでAC
  • by Anonymous Coward on 2004年09月17日 0時01分 (#623467)
    HDD内を検索したら
    C:\Program Files\Common Files\Microsoft Shared\VGX
    C:\WINNT\system32\dllcache
    にちょうどバージョン6.0.2800.1411のVGX.DLLが見つかったのですが、
    これは影響を受けるバージョン?っていうか、最新のVGX.dllのバージョンはいくつ?VGX.DLLのアップデートはどうやるの?(Windows Updateは全部適用済)
    • by Namo (14104) on 2004年09月17日 4時15分 (#623524) 日記
      しきい値で二つのコメントがみえんのだが。(笑)

      とりあえず、dll(あんた)はどっからきたのをどう捜すかのプロセス

      むー該当.dll更新日時が、SP2の当てた日9/2(初物人柱)ではない
      でちょいと辿ったら、KB867801(IE6SP1累積)をパッチしたのが2004/8/2か…
      つまり、その近辺で放り込まれたか上書きされたかのいずれかだな…多分
      後、dllの墓場(バックアップキャッシュ)…ああ捜すの('A`)マンドクセから
      窓+F検索掛けて*.dll で捜すと、おおあった VGX.dllの素が
      2002年9月20日、02:38:21か、SP1で放り込まれたのかな
      あーlog追跡したら、SP1をこの日に入れているから間違いない。(人柱Prat2)

      で、最終更新(最新のdllに入れ替わったと言えるかも?)が
      SP2のサービスパックを叩き込んだ日時に該当<2004/09/02
      やはり、Sp2の時に書き変わったとみるべきかもしれぬ。

      っと。Dll.の樹海にハマると怖いので…

      とりあえずここは、泣く子もヨメも怖い怖いというスラドなので
      あまり教えてとか言わない方がいいですよ。
      後、Windowsのシステムを司るdllがどこから来て何処に住み着くかは
      大体MSソフトのインストールか、IE絡みのパッチか、Spの小パッチかと決まっているので
      検索を駆使し、プロパティーやエクスプローラーの詳細を展開して
      ファイルのタイムスタンプを確認するようにしましょう。
      ファイルに付いている各種Ver、製作、更新、アクセス日時等は、飾りではないのです。
      エライ人には、それが分からないのです、ファイルVerと属性の意味が!

      余録・該当VGX.DLLプロパティーが以下なら大丈夫かも?

      Verは 6.00.2900.2180

      Microsoft Corporation
      ニュートラル言語
      Microsoft® is a registered trademark of Microsoft Corporation.
      6.0.2900.2180
      Microsoft Vector Graphics Rendering(VML)
      MSVML

      作成日時 2002年9月20日、02:38:21
      更新日時 2004年8月4日、16:55:27

      vgz.dllは
      C:\WINDOWS\SoftwareDistribution\Download\1d6fa39895dfc1d3756b5510bca8c7f4
      C:\WINDOWS\ServicePackFiles\i386
      C:\Program Files\Common Files\Microsoft Shared\VGX
      に存在します。
      >(Windows Updateは全部適用済)
      クライアントさんはみーんなそう言うんだ(泣きながら)

      でも、IEを使わなきゃいいんだけどね…。

      親コメント
typodupeerror

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

読み込み中...