Microsoftが
2月の月例更新を3月に延期する一方で、GoogleのProject ZeroがWindowsの未修正脆弱性を
2月14日 (
CVE-2017-0038)と
23日 (
CVE-2017-0037)に相次いで公表した。これらの脆弱性のうち、CVE-2017-0038に対するパッチを
ACROS Securityの0patch Teamが公開している(
0patch Blogの記事、
BetaNewsの記事、
Softpediaの記事)。
CVE-2017-0038はgdi32.dllのバグにより、リモートの攻撃者が細工したEMFイメージファイルを使用してプロセスのヒープメモリーから情報を取得できるというもの。
バグは昨年3月に発見され、Microsoftは
6月の月例更新で修正したものの、修正が不完全だったという。そのため、Project Zeroでは11月にMicrosoftへ再度通知したが、90日間の期限が過ぎたとして2月14日に公表した。
Project Zeroで公開されているPoC(
poc.emf)は1×1ピクセルのビットマップを含むが、DIBデータは16×16ピクセルに改変されている。影響を受けるシステムのInternet Explorer 11に画像をドロップすると、255ピクセル分がヒープ内のジャンクデータに基づいて描画されることになる。
0patchのパッチは、
0patch.comで公開されている「0patch Agent」(ベータ版)をインストールして実行することで適用できる。ただし、利用にはユーザー登録が必要となる。0patch Agentは常駐し、パッチ適用の有無も切り替え可能だ。パッチを適用した状態では空のイメージが描画され、エクスプロイトをブロックしたことがポップアップ表示される。
パッチが提供されるのは、Windows 7および64ビット版のWindows 8.1/10のみ。なお、パッチは脆弱性のあるバージョンのDLLに対してのみ適用され、Microsoftから公式の修正プログラムがリリースされれば適用されなくなるとのこと。
ちなみに、CVE-2017-0037はMicrosoft EdgeとInternet Explorer 11に存在する型の取り違えの脆弱性だ。この脆弱性を利用すると、リモートの攻撃者は細工したCSSとJavaScriptにより、任意コードの実行が可能になるとのこと。