広範囲の Word バージョンに影響する脆弱性に関するセキュリティ アドバイザリが公開されました。Windows 版の Word 向けには、回避策をすばやく適用できる Microsoft Fix It 51010 も公開されています。
Security TechCenter > セキュリティ アドバイザリ > マイクロソフト セキュリティ アドバイザリ (2953095) > Microsoft Word の脆弱性により、リモートでコードが実行される
[URL] http://technet.microsoft.com/ja-jp/security/advisory/2953095
Microsoft security advisory: Vulnerability in Microsoft Word could allow remote code execution (Microsoft Fix it 51010 および Microsoft Fix it 51011)
[URL] http://support.microsoft.com/kb/2953095/
ですが、この Microsoft Fix It、ローカルにインストールされている 64 ビット版 Office 2013 (64 ビット版 Word 2013) を見つけてくれないかも。筆者の Windows 7 SP1 x64 にインストールされている Office 2013 SP1 環境ではそうでした。セキュリティ アドバイザリによると、64 ビット版も影響ありだそうなので、右のメッセージを信用するのは不安。
回避策を手動で設定すればよいのですが、気になるので調査開始。
Windows Sysinternals の Procmon.exe (http://live.sysinternals.com/procmon.exe) を使って、Microsoft Fix It のプロセスである msiexec.exe のレジストリ アクセスを眺めてみると、Word 2013 のインストール場所を探すのに、HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Word\InstallRoot の Path 値を参照しているらしいことを突き止めました。HKLM\SOFTWARE\Wow6432Node は、64 ビット版 Windows に 32 ビット版のソフトウェアをインストールした場合に使われるツリーです。64 ビット版の Office 2013 は、HKLM\SOFTWARE\Microsoft\Office\15.0\Word\InstallRoot を使用するので、見つかるわけがありません。
では、なぜ HKLM\SOFTWARE\Wow6432Node の下を探しているのか、Windows 8.1 のいくつかの環境で試してみました。
まずは、64 ビット版 Windows 8.1 と 32 ビット版 Office 2013 の組み合わせから。HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Word\InstallRoot の参照が成功し、Path 値からパス C:\Program Files (x86)\Microsoft Office\Office15 を取得できてます。
続いて、64 ビット版 Windows 8.1 と 64 ビット版 Office 2013 の組み合わせ。HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Word\InstallRoot が見つからず (NAME NOT FOUND)。だからといって HKLM\SOFTWARE\Microsoft\Office\15.0\Word\InstallRoot を探している様子はありません。
最後に、32 ビット版 Windows 8.1 と 32 ビット版 Office 2013 の組み合わせ。あれれれれ、警部、HKLM\SOFTWARE\Microsoft\Office\15.0\Word\InstallRoot と HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Word\InstallRoot の両方を検索しているよ。HKLM\SOFTWARE\Wow6432Node のほうの確認は無駄だよね。
・・・
Office 2010 (Word 2010) だと、ちゃんと Fix It できました。
MicrosoftFixIt51010.msi の中身を覗いてみると、レガシな Office (Office 2010 以前) のバージョンとアーキテクチャのチェックは VBScript で行っているみたい。
3/27 追記) Office 2013 は旧バージョンと同居できます。この Fix It の挙動を見ると、Word 2013 と Word 2010 以前の両方のレジストリを変更するように作ってあるようです。ですが、64 ビット版の Word 2013 と Word 2010 の両方がインストールされた環境だと、Word 2013 は検出されず、Word 2010 のほうだけを Fix It して、Fix It できたよと言ってくると思うのでご注意。
64 ビット版の Word 2013 使っている人ってそんなにいないと思いますが (64 ビット OS でも 32 ビット Office が推奨されているので)、そんな少数派の方のために、Microsoft Fix It 51010 と 51011 がたぶんやっていることをバッチにしてみました。
[MyMicrosoftFixIt51010forWord2013x64.cmd]
[MyMicrosoftFixIt51011forWord2013x64.cmd]
このバッチを使う場合は、自己責任でお願いします。このバッチはちゃんとテストしてません。っていうか、Microsoft Fix It って可能性のあるすべての環境でテストしてないのか!
3/27 追記) このバッチで追加しているレジストリからわかるように、Microsoft Fix It 51010 は実行したユーザーの環境にだけ回避策を講じます。その PC を使用するユーザーごとに Fix It しないと安心できませんよ。ついでに言うと、Microsoft Fix It 51010 はクイック実行 (C2R) の Word 2013 32-bit は Fix It できますが、Microsoft Application Virtualization (App-V) で展開された Word は Fix It できません。なぜなら、App-V の仮想レジストリは Msiexec.exe から見えないから。
・・・
4/4 追記) 「マイクロソフト セキュリティ情報の事前通知 - 2014 年 4 月 (→ http://technet.microsoft.com/ja-jp/security/bulletin/ms14-apr)」から察すると、4 月の Microsoft Update で Word のこの脆弱性は解決されそうです。そうなれば、Microsoft Fix It 51010 も不要になると思うので、Microsoft Fix It 51011 で解除できるかと。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。