vuln.sg  

vuln.sg Vulnerability Research Advisory

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

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

   [en] [jp]

概要

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


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

PowerArchiver version 9.62.03 (英語版)


問題

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

バッファオーバーフローの脆弱性が PowerArchiver の DZIPS32.DLL (version 6.0.0.4) にあります。


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


func_20009B20(arg_0, arg_4, arg_8)
{
DWORD var1;
DWORD var2;
DWORD var3;
DWORD var4;
DWORD var5;
DWORD var6;
DWORD var7;
DWORD var8;
DWORD var9;
DWORD var10;
DWORD var11;
DWORD nNumberOfBytesToWrite;
DWORD bytesWritten;
char buffer[0x800]; // 2048 bytes

...
var1 = 0;
var2 = 0;
var3 = 0;
var9 = 0;
var11 = 0;

// Both cases will cause buffer overflow in "buffer"
// when filename of compressed file is > 2048 bytes


if(arg_8->someFlag == 0)
CharToOemA(arg_0->NameOfCompressedFile, buffer);
else
lstrcpyA(buffer, arg_0->NameOfCompressedFile);
...
...
...
}
 


脆弱性のテストファイル

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

  • powarcEXPzip.zip (バッファオーバーフローを利用し calc.exe を実行します。)
  • powarcCRASHzip.zip (バッファオーバーフローを利用し PowerArchiver を異常終了します。)

Instructions:

  1. Run PowerArchiver
  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. Click on the "Add" button or select "Actions->Add.." from the menu.
  5. Choose any file in the File-Selection dialog box and click "Add".
  6. Successful exploit will run calculator (calc.exe). Failed exploit will crash PowerArchiver.
 


対策

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


発見と報告の経緯

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


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