vuln.sg  

vuln.sg Vulnerability Research Advisory

PowerZip におけるバッファオーバーフローの脆弱性

by Tan Chew Keong タン チュー ケオン
Release Date: 2006-08-23

   [en] [jp]

概要

PowerZip にバッファオーバーフローの脆弱性があります。悪意のある人は、この脆弱性を利用しPowerZipユーザのシステムに、任意のコードを実行ことがで きます。


問題を確認したバージョン

PowerZip version 7.06 Build 3895.


問題

PowerZip にバッファオーバーフローの脆弱性があります。それが、巧妙に細工された ZIP ファイルをオープンするとき、バッファオーバーフローが発生します。悪意のある 攻撃者は、この問題を利用しWindows 2000 SP4 で、PowerZip を実行するユーザの権限で任意のコードを実行できる可能性があります。

PowerZip が、異常に長いファイル名のファイルを含む ZIP ファイルを処理するとき、バッファオーバーフロー は発生します。


バッファオーバーフローの脆弱性が PowerZip.exe の以下の似ているの function にあります。

	
func_50E1A0(arg_0, .., .., ..)
{
...
CString nameOfCompressedFile;
LVCOLUMN lvc;
...
lvc.mask = LVCF_SUBITEM;
SendMessage(hWnd, LVM_GETCOLUMN, arg_0->iCol, &lvc);
...
if(arg_0->someFlag != 1)
{
switch(lvc.iSubItem)
{
case 0:
if(arg_0->someStruct->someStruct2->someFlag != 0)
{
nameOfCompressedFile =
arg_0->someStruct->someStruct2->compressedFilenameCString;

}
else
...
break;
case 1:
CDTPath
var_180(arg_0->someStruct->someStruct2->CDTTimeVar.GetShortDate());
...
...
break;
case 2:
break;
...
...
...
}

// This causes a stack-based buffer overflow when the name of a compressed
// file (from a ZIP archive) is overly long.

strcpy(arg_0->stackBuffer, nameOfCompressedFile->GetBuffer(0));

nameOfCompressedFile->ReleaseBuffer(-1);
...
...
}
...
...
}

 


脆弱性のテストファイル

これは脆弱性のテストのためにファイルです。この ZIP ファイルは、バッファオーバーフローを利用し calc.exe を実行します。このZIPファイルは、英語版の Windows 2000 SP4 が必要です。

  • powerzipEXP.zip (バッファオーバーフローを利用し、英語版の Windows 2000 SP4 で calc.exe を実行します)
  • powerzipCRASH.zip (バッファオーバーフローを利用し、PowerZip.exe を異常終了します)

Instructions:

  1. Run PowerZip
  2. Click on the "Open" button or select "File->Open Archive" from the menu.
  3. Select the POC ZIP file from the File-Open Dialog Box and click "Open".
  4. Successful exploit will run calculator (calc.exe). Failed exploit will crash PowerZip.
 


対策

Version 7.07 Build 3901 へのバージョンアップをしてください。修正版のダウンロード


発見と報告の経緯

2006年08月10日 - 脆弱性の発見。
2006年08月12日 - ベンダに報告しました。
2006年08月18日 - ベンダは修正版をリリースしました。
2006年08月23日 - 本脆弱性の公開。


Contact
For further enquries, comments, suggestions or bug reports, simply email them to