Explzh for Windows

Windows 用の高機能圧縮・解凍ツール
Japan | English
ソフトウエア情報ダウンロードオンラインヘルプご登録方法個人情報の扱いについて




既知の不具合とその回避方法、制限事項、脆弱性情報など



 

●Explzh、Archive decoder における実行ファイル読み込みに関する脆弱性

JVN 公開日:2010/10/20 PM 2:00

JVN#85599999 (Explzh)
JVN#68536660 (Archive Decoder)


【概要】
Explzh、Archive decoder における MS Windows のアプリケーション読み込みで、本来読み込むべきアプリケーションではなく、攻撃者が用意した偽アプリケーションを読み込んでしまう可能性のある脆弱性が存在します。


【想定される影響】
攻撃者が用意した同じモジュール名を偽った Windows アプリケーションを読み込んでしまった場合、任意のコードを実行される可能性があります。


【Explzh、Archive decoder での対策】
Windows アプリケーションのパスの検索方法を変更し、Windows フォルダ以外にあるアプリケーションを読み込まないようにして対策を行いました。
Explzh v.5.67 以前をお使いの方、Archive decoder v.1.23 以前をお使いの方は、最新版へアップデート してください。


【開発側として...】
'notepad', 'explorer', 'rundll32.exe' 等の Windows アプリケーションの殆ど (DLL も含む) は Windows アプリケーションであることの証明の署名がありません。
Windows アプリケーションにも 『Microsoft 製品であることを証明する署名』 を付けていただくか、
正規の Microsoft モジュールであることをチェックできる WinAPI を提供していただきたいと思いました。
参照: Explzh-ML


方法がありました。署名がなくとも、カタログを参照する事でチェックできます。
正規の Windows アプリケーションであるかをチェックする

※ちなみに Explzh では、ユーザが格納ファイルのアプリケーションを実行しようとした場合、実行前に、必ず、「実行モジュールの署名の正当性」のチェックが行われます。


【謝辞】
JPCERT/CC様IPA 様、本脆弱性を発見・ご報告頂いた、塩月 誠人 氏に深く御礼申し上げます。


 

●Microsoft Windows における DLL 読み込みに関する脆弱性

JVN 公開日:2010/08/27


【概要】
Microsoft Windows における DLL 読み込みには、本来プログラムが読み込むべき DLL ではなく、攻撃者が用意した DLL を読み込んでしまう脆弱性が存在します。


【想定される影響】
攻撃者が用意した同じ名前の DLL をアプリケーションがロードしてしまった場合、任意のコードを実行される可能性があります。 Windows 上で外部 DLL をロードして動作するプログラムの殆どが影響を受ける可能性があります。


【Explzh での対策】
独自の DLL の検索アルゴリズムで DLL の検索方法を変更し、ロード場所を制限しました。
Windows のシステムライブラリは System フォルダ上の DLL のみがロードされ、アーカイバ DLL は [ユーザ側で設定されたアプリケーションパス] → [System フォルダ] → [Explzh の存在するフォルダ] の順に検索され、ロードするように対策しました。カレントフォルダや、環境変数の PATH は無視しますのでご注意ください。

Explzh v.5.65 以前をお使いの方は、最新版へアップデート してください。


【マイクロソフト サポートオンライン】
この問題についての説明、解決する為の方法が説明されています。(2010/9/6)

マイクロソフト サポートオンライン


【詳細情報】

 

●Explzh におけるバッファオーバーフローの脆弱性 (2010/6/22)

JVN#34729123


【LZH のコメント付きヘッダの処理において、バッファオーバーフローの脆弱性】
LZH 書庫の拡張ヘッダのコメント付き LHA の処理で、各ファイルへ付加されたコメントの合計文字のバイト数が 32KB 以上の場合にバッファーオーバーフローが発生します。


【想定される影響】
拡張ヘッダのコメントヘッダを利用して細工された LHA 書庫ファイルを処理した場合、任意のコードを実行される可能性があります。


【対策方法】
Explzh に含まれている Arcext.dll のバージョンが 2.16.1、及びそれより古いバージョンの場合、本脆弱性の影響を受けます。参照:Explzh 及び各モジュールのバージョン情報の確認方法
Explzh v.5.62 以前をお使いの方は、最新版へアップデート してください。


【その他、補足事項】
  • 本脆弱性は、LZH に存在するものではなく、Explzh の内蔵エンジンの処理の問題によるものです。
    [複数のアンチウィルス製品に脆弱性] JVNVU#545953 とは別の脆弱性です。
    設定で UNLHA32.DLL を利用する設定 にしている場合は問題ありません。
  • 当サイトで配布している、LHA自己解凍モジュールや Archive Decoder につきましても、本脆弱性はありません。
  • Lv0 ヘッダの LZH 書庫においては、拡張ヘッダ自体が存在しないのでこの脆弱性はありません。
  • 詳細修正内容は こちら をご覧ください。

【謝辞】
JPCERT/CC様IPA 様、本脆弱性を発見・ご報告頂いた、高野 健寿 氏に深く御礼申し上げます。


 

●内蔵圧縮解凍エンジンで操作できるファイルサイズ制限


■4GB 以上の書庫への対応について
4GB を超える書庫への対応 をご覧ください。

■CAB (キャビネット)書庫の圧縮できるサイズの上限
CAB 書庫の圧縮可能サイズの上限は 2GB までです。これはCAB 書庫構造上の仕様です。
2GB 以上となるキャビネットになる場合は自動的に分割書庫として作成されます。



 

●ACE 形式の圧縮で ACE32.EXE v.2.6 使用した場合、圧縮できない不具合について

ACE 形式の圧縮で ACE32.EXE のバージョン 2.6 を指定している場合、圧縮がおこなえないという不具合を確認しています。(2005/12/8)

Explzh で ACE 形式の圧縮をおこなう場合、レスポンスファイルに圧縮リストを作成して ACE32.EXE へコマンドラインとして渡して実行しています。ACE32.EXE v.2.6 では、このレスポンスファイルを受け取ってくれないバグが存在するようです。

ACE32.EXE v.2.6 より前のバージョンを指定する事で問題なく圧縮を行えますので、ACE32.EXE は v.2.6 より前のバージョンを指定してご使用くださいますようお願いします。

 

●rk.exe を利用した rk 形式の圧縮の不具合と思われるもの

rk 圧縮時の設定で、3段階の圧縮メソッドと3段階のレベルの組み合わせによっては、解凍できない rk 書庫ができてしまうのを確認しています。(ファイル名文字コードに依存せずに再現)
※具体的には [速度優先]+[Level2] の組み合わせです。

DOS 画面から、直接、rk.exe をコマンドラインから実行して作成した書庫でも再現できるので、rk.exe のバグではないかと認識しています。

この問題については、対処方法はありません。

 

●指定外の場所へファイルが解凍されてしまう脆弱性

参照:窓の杜のNews記事より
http://www.forest.impress.co.jp/article/2004/07/30/arcsecurity.html

この問題について、v.4.20 以降のバージョンで LZH, ZIP ,CAB 内蔵解凍エンジンで対応、v.4.21で全アーカイバDLL 使用時にも対応しました。
この問題を回避するには、v.4.20 以降のバージョンをお使いください。



■ v.4.19 以前の版を使用の場合、本脆弱性問題への対処方法
  1. 心当たりのない書庫を展開する場合は必ず書庫の内容をリスト表示して確認する

    ツリー表示されているフォルダの名前が不自然でおかしい(具体的には ".." のみのツリー階層が存在する)ような書庫の場合には解凍はおこなわないようにしてください。

  2. 「解凍先の指定」ダイアログボックスで「フォルダ構造を無視して展開」をチェックして解凍する。

    パス構成は復元されませんので、指定したフォルダ以外へは解凍されません。
※解凍事前に問題の格納フォルダの名前の変更をおこない、問題を回避する事も可能です。