VS2010でコンパイルされたすべてのMFCアプリに脆弱性ってのは過小報告?
VS2010 でコンパイルされた全ての単体 MFC アプリケーションに脆弱性が存在- livedoor ニュース
VS2010 でコンパイルされた全ての単体 MFC アプリケーションに脆弱性が存在 – スラッシュドット・ジャパン
というニュースがあったので、Windows 2000環境に 偽 dwmapi.dll をインストールしてDLLが読み込まれるか試してみました。

Safari4/5 の場合、モジュールが組み込まれちゃってますね。

こちらは、パナソニックの拡大ツール、これもアウト
こちらはパナソニックPC情報ツール

これは、Snagit 9というツール。
全部Windows 2000上で検証。
ここに列挙したのは、私のPC上で DLLやEXE内に DWMAPI.DLLの文字列が組み込まれているソフト。
dwmapiが組み込まれてしまった問題のありそうなアプリは「x」を付けました。
Visual Studio 2010 Project
x 妖精大戦争
– Core Temp
– Debugging Tools for Windows
Visual Studio 2008 Project
x Felica Updater
x Snagit 9
x Super Mapple Digital 11
x Panasonic PC情報ビューア
x Lunascape
x Panasonic OptView
x Corel Video Studio Pro X3
– Google Chrome
– iTunes
– Adobe Air 2.5
– IME2010
– SilverLight4
– FlashPlayer 10.1
Visual Studio 2005 Project
x Safari 4
x Safari 5
– 360desktop
– Picasa 3.8
– Firefox
– OpenGL Extenssions Viewer 3.0
– Steam
– Stardoc Impulse
– Office 2007
– VMPlayer 3.1
? Panasonic Display Helper
? quanp
? Inter Video WinDVD 8
Visual Studio 2003 Project
– Panasonic Wireless Manager
– Office 2003
– Java6
Visual Studio 6 Project
– VistaBootPro 3.3
Other
– Shock4way3D
見ての通り、 Visual Studio 2010だけでなく、 VC++2008 や VC++2005 でコンパイルされているアプリでも問題が発生しました!
たぶん、このダミーで組み込んだ dwmapi.dll を最初から 最初に読み込みに行く、system32に組み込んでおけばよいのかもしれませんが、影響範囲は相当広そうですね。

こちらは Visual Studio 2008でコンパイルされた Felica Updater を Dependency Walker でプロファイル実行したところ。
思いっきり動的にロードされてます。
関連サイト:
JVNVU#707943: Windows プログラムの DLL 読み込みに脆弱性
マイクロソフト セキュリティ アドバイザリ (2269637): 安全でないライブラリのロードにより、リモートでコードが実行される
WindowsのDLL読み込みに脆弱性–コード実行の危険性:JVN発表 – セキュリティ – ZDNet Japan


system32に置いてテストしてるみたいですけど、フルパスで自前でLoadLibraryしてるソフトがあったとして、それは脆弱性にはならないと思うんですがどうでしょ
system32に置いてテストしてるみたいですけど、フルパスで自前でLoadLibraryしてるソフトがあったとして、それは脆弱性にはならないと思うんですがどうでしょ
フルパス指定でLoadLibrary または、SetDllFolderしてたら大丈夫だったはずなのですが、残念ながら対応してるのは SetDllFolderを使ってる、Safari 5だけじゃないかと思います。
フルパス指定でLoadLibrary または、SetDllFolderしてたら大丈夫だったはずなのですが、残念ながら対応してるのは SetDllFolderを使ってる、Safari 5だけじゃないかと思います。