|
|
| [FFRRA-20071009] PowerArchiver2007のBHファイル処理におけるヒープオーバーフローの脆弱性 |
■ 報告日:
2007年8月20日
■ 公開日:
2007年10月9日
■ 対象OS:
Microsoft Windows
■ ベンダー:
ConeXware, Inc.
http://www.powerarchiver.com
■ ソフトウエア名:
PowerArchiver 2007
■ 影響を受けるバージョン:
PowerArchiver 10.20.21 より前のバージョン
■ Upcoming Advisory 番号:
FFRUA-20070820
■ 概要:
フォティーンフォティ技術研究所リサーチチームは、海外・国内で広く利用されているファイル圧縮展開ソフトウエア「PowerArchiver 2007」のBHファイル展開処理にヒープオーバーフロー脆弱性を発見しました。細工されたBHファイルを展開すると、BHファイル中に記述された任意のコードがユーザーの許可無しに実行される可能性があります。
■ 詳細:
本脆弱性は、BHファイル中に長いファイル名が指定されていた場合に発生します。バッファオーバーフローは以下の関数に存在します。
CODE:0040B478 sub_40B478 proc near
CODE:0040B478
CODE:0040B478
CODE:0040B478 NumberOfBytesRead= dword ptr -4
CODE:0040B478
CODE:0040B478 push ebx
CODE:0040B479 push esi
CODE:0040B47A push edi
CODE:0040B47B push ecx
CODE:0040B47C mov edi, ecx
CODE:0040B47E mov esi, edx
CODE:0040B480 mov ebx, eax
CODE:0040B482 push 0 ; lpOverlapped
CODE:0040B484 lea eax, [esp+8+NumberOfBytesRead]
CODE:0040B488 push eax ; lpNumberOfBytesRead
CODE:0040B489 push edi ; nNumberOfBytesToRead
CODE:0040B48A push esi ; lpBuffer
CODE:0040B48B push ebx ; hFile
CODE:0040B48C call ReadFile_0
上記関数にてBHファイルからファイル名を読み込みますが、ReadFile_0()に渡される読み込みバイト数(0040B48Aのesi)、すなわちファイル名長に適切なバウンダリチェックがなされていません。このため、長いファイル名長フィールドと長いファイル名が指定されたBHファイルを読み込むことで、ReadFile_0()にてバッファオーバーフローが発生します。ReadFile_0()で指定されるバッファはヒープ上に確保されているためヒープオーバーフローが発生し、最終的に以下のexploit可能条件に到達します。
CODE:00401DB8 loc_401DB8:
CODE:00401DB8 mov eax, [eax]
CODE:00401DBA mov [edx], eax
※ 00401DBAにてEDX、EAX共にコントロール可能
■ 深刻度:
高
■ 脆弱性情報の取り扱い:
本脆弱性は、情報処理推進機構(IPA)の「情報セキュリティ早期警戒パートナーシップガイド」に従って処理されました。
http://www.ipa.go.jp/security/vuln/
■ 対策:
ベンダーからリリースされている最新バージョンをインストールしてください。
http://www.powerarchiver.com/news/
■ 発見者
鵜飼裕司
■ 関連情報:
http://jvn.jp/jp/JVN%2361323184/
http://www.ipa.go.jp/security/vuln/documents/2007/JVN_61323184.html
http://www.st.ryukoku.ac.jp/~kjm/security/memo/2007/10.html#20071005_various
■ より詳細な情報:
FFR Prime Analysisサービスでは、
- 本脆弱性のより詳細な分析
- 攻撃案定性分析
- パッチ差分解析
など、より詳細な情報を提供しています。
http://www.fourteenforty.jp/services/index.htm
■ お知らせ
リサーチエンジニア、ソフトウエアエンジニアの募集を行っています。
http://www.fourteenforty.jp/recruit/index.htm
