トレンドマイクロは7月8日、同社のセキュリティブログで「Hacking Team」の漏えい事例で確認された、OpenTypeフォントマネージャの脆弱性の検証に関する記事を公開した。

記事は、2015年7月にイタリア企業「Hacking Team」が攻撃を受け、400GB以上のデータ漏えいが報道されたことを受けてのもの。漏えいした情報には、攻撃を実行するためのツールが含まれており、Adobe Flash PlayerやWindowsに存在する脆弱性を利用したエクスプロイトコードも確認されている。

この脆弱性は、Adobeが提供しているOpen Typeフォント管理モジュール「ATMFD.dll」に存在するもので、このモジュールはカーネルモードで実行され、攻撃者は脆弱性を悪用して権限昇格し、サンドボックス機能を備えるセキュリティ対策製品を回避するという。

アプリケーションが「GDI32!NamedEscape」などの特定のGDI APIを呼び出す際には、フォント処理に使用するフォントドライバを指定できるが、「ATMFD.dll」 はこのフォントドライバの1つ。このモジュールがフォントの情報を処理する際、符号付数字の拡張により「バッファアンダーフロー」が起こる。

脆弱性を抱えるコードの例

上図の5行目のコードが符号拡張で、iが0x8000の場合、indexは0xffff8000となる。符号付数字から見るとindexは非常に小さな値(負の値)となるため、6行目のif文は真となり、8行目で、index*2+6は負の値となる。そのため、buffer_base[index*2+6] は buffer_baseの前の位置を指すことになる。攻撃者はフォントバッファのデータを用意でき、脆弱性を悪用して入力されたバッファの前の位置に自身が制御するコードを書くことが可能となる。