|
|
| [FFRRA-20070921] LhaplusのARJファイル処理におけるヒープオーバーフローの脆弱性 |
■ 報告日:
2007年8月21日
■ 公開日:
2007年9月21日
■ ソフトウエア名:
Lhaplus for Windows
■ ベンダー:
http://www7a.biglobe.ne.jp/~schezo/
■ 影響を受けるバージョン:
Version 1.53およびそれ以前
■ Upcoming Advisory 番号:
FFRUA-20070821
■ 概要:
フォティーンフォティ技術研究所リサーチチームは、国内で広く利用されているファイル圧縮展開ソフトウエア「Lhaplus」のARJファイル展開処理にヒープオーバーフロー脆弱性を発見しました。細工されたARJファイルを展開すると、ARJファイル中に記述された任意のコードがユーザーの許可無しに実行される可能性があります。
■ 詳細:
本脆弱性は、ARJファイル中に長いファイル名が指定されていた場合に発生します。バッファオーバーフローは以下の関数に存在します。
CODE:00409610 ; int __fastcall sub_409610(DWORD nNumberOfBytesToRead,LPVOID lpBuffer)
CODE:00409610 sub_409610 proc near
CODE:00409610
CODE:00409610
CODE:00409610 NumberOfBytesRead= dword ptr -4
CODE:00409610
CODE:00409610 push ebx
CODE:00409611 push esi
CODE:00409612 push edi
CODE:00409613 push ecx
CODE:00409614 mov edi, ecx
CODE:00409616 mov esi, edx
CODE:00409618 mov ebx, eax
CODE:0040961A push 0 ; lpOverlapped
CODE:0040961C lea eax, [esp+8+NumberOfBytesRead]
CODE:00409620 push eax ; lpNumberOfBytesRead
CODE:00409621 push edi ; nNumberOfBytesToRead
CODE:00409622 push esi ; lpBuffer
CODE:00409623 push ebx ; hFile
CODE:00409624 call ReadFile
上記関数にてARJファイルからファイル名を読み込みますが、ReadFile()に渡される読み込みバイト数(00409621のedi)、すなわちファイル名長に適切なバウンダリチェックがなされていません。このため、長いファイル名長フィールドと長いファイル名が指定されたARJファイルを読み込むことで、ReadFile()にてバッファオーバーフローが発生します。ReadFile()で指定されるバッファはヒープ上に確保されているためヒープオーバーフローが発生し、最終的に以下のexploit可能条件に到達します。
CODE:00401D0C loc_401D0C:
CODE:00401D0C mov eax, [eax]
CODE:00401D0E mov [edx], eax
※ 00401D0EにてEDX、EAX共にコントロール可能
■ 深刻度:
高
■ 対象OS:
Microsoft Windows
■ 脆弱性情報の取り扱い:
本脆弱性は、情報処理推進機構(IPA)の「情報セキュリティ早期警戒パートナーシップガイド」に従って処理されました。
http://www.ipa.go.jp/security/vuln/
■ 対策:
ベンダーからリリースされている最新バージョン1.55をインストールしてください。
http://www7a.biglobe.ne.jp/~schezo/
■ 関連情報:
http://www7a.biglobe.ne.jp/~schezo/arj_vul.html
http://jvn.jp/jp/JVN%2370734805/index.html
http://www.ipa.go.jp/security/vuln/documents/2007/JVN_70734805.html
http://www.ipa.go.jp/security/vuln/200709_Lhaplus.html
■ 発見者
鵜飼裕司
■ より詳細な情報:
FFR Prime Analysisサービスでは、
- 本脆弱性のより詳細な分析
- 攻撃案定性分析
- パッチ差分解析
など、より詳細な情報を提供しています。
http://www.fourteenforty.jp/services/index.htm
