
Microsoft Office Onenote 2007(CVE-2014-2815)".ONEPKG"ファイルのディレクトリトラバーサル脆弱性は、任意のコード実行につながります
Microsoft Office Onenote 2007 (CVE-2014-2815) の ".ONEPKG" ファイルのディレクトリトラバーサル脆弱性により、任意のコード実行が可能になる Microsoft Office Onenote 2007 (CVE-2014-2815) の ".ONEPKG" ファイルのディレクトリトラバーサル脆弱性により、任意のコード実行が可能になる
OneNote 2007 には、プログラムが「.onepkg」ファイル(「MS CAB 形式」を使用)内に含まれるファイルを、親ディレクトリ 「..\」をファイル名に使用することで、システム上の任意の場所に展開してしまう脆弱性があります。 また、Onenote はファイル拡張子もチェックしないため、安全でないファイルを任意の場所に展開することが可能です。
Windows XP では、標準ユーザーはシステム内のほとんどの場所に書き込みアクセス権を持つため、攻撃者は DLL ファイル (ntshrui.dll) を Microsoft Office のインストールディレクトリに展開することができます。この DLL は、Onenote が「.onepkg」ファイルを処理した直後に読み込まれます:
c:\program files\microsoft office\office12\ntshrui.dll
Windows Vista 以降では、標準ユーザーは「UAC」機能によって制限され、現在のユーザーのプロファイルのサブディレクトリにのみファイルを展開できます。スタートアップフォルダに実行ファイルを展開することが可能であり、これもコンピュータの再起動時に任意のコード実行につながります。
これを再現するには、Cab アーカイバソフトウェア(例: 'makecab.exe')または MS CAB 形式をサポートする任意のプログラミング言語の IDE を使用し、新しい cab アーカイブ内に長い名前のファイルを挿入します。 そして、ファイル名の文字を親ディレクトリ「..\」に置き換えて編集します。 生成した cab アーカイブの名前を「.onepkg」に変更します。
この PoC では、Windows の Write アプリを使用し、スタートアップフォルダにドロップするために、次のように名前を付けました:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWrite.exe
次に、トラバーサル手法を使用すると、CAB アーカイブ内のファイル名は次のようになります:
......\roaming\microsoft\windows\start menu\programs\startup\Write.exe
脆弱なバージョン: MS Office 2007 SP3 テスト環境: Windows XP SP3, Vista SP2, 7 SP1 + Office 2007 SP3 (パッチ未適用) (その他の OS もおそらく影響を受けます)