### Micco's Home Page ### Welcome to Micco's page!!
Sorry, but this web page is written in Japanese.
<English>
■ 更新情報
■ このWebページについて
■ お知らせ
■ ダウンロード
■ DLL のインストール方法
■ SFX の設定例
■ いろいろ
対応ブラウザー
[Internet Explorer] [Firefox] [Opera] [Sleipnir] [Safari] [Google Chrome]
連絡先:Micco
[e-mail]
[→『脆弱性情報一覧』] [→Home]

<公開:Sep.25,2006 最終更新:Oct.14,2006>

MHSVI#20060925-06:
UNARJ32.DLL における無限ループの脆弱性

 このページは『gzip における脆弱性の影響について』で記述されている内容を UNARJ32.DLL の脆弱性情報として再構成したものです。


概要

 UNARJ32.DLL は, ARJ 形式に対応した圧縮・展開等の書庫操作を行うライブラリーです。 UNARJ32.DLL には CVE-2006-4338 と同様な無限ループの脆弱性が存在します。

影響を受けるモジュール及びシステム

  • UNARJ32J.DLL Ver 1.00.1.21 及びそれ以前
  • 上記を利用しているアプリケーション

詳細情報

 UNARJ32.DLL は, 『統合アーカイバ』の API 仕様に準拠した, ARJ 形式書庫に対する圧縮・展開といった操作を行うためのライブラリーです。 UNARJ32.DLL は主に圧縮・展開等を行うアーカイバーソフトウェアから呼び出される形で使用されますが, 無限ループの脆弱性が含まれており, 細工された書庫ファイルの展開 (を伴う処理) を行うことで, サービス運用妨害 (DoS) 攻撃を受ける可能性があります。

想定される影響

 UNARJ32.DLL を利用しているアプリケーションの動作状況により異なりますが, 無限ループによるサービス運用妨害 (DoS) 攻撃を受ける可能性があります。

対策方法

 最新版 (Ver 1.01b 以降) へバージョンアップを行ってください。 [ダウンロード]

回避方法

  • アプリケーション側で UNARJ32.DLL の使用有無等を行える場合は, UNARJ32.DLL を使用しない, 別の DLL や代替方法を選択する, といった設定を行うことで回避を行うことが可能です。

技術情報

 本脆弱性は, 巧妙に細工された ARJ 書庫を展開 (内部的に展開処理を含む操作全般。) することで発生します。 以下の関数に無限ループの脆弱性が存在します:


static VOID read_c_len(VOID)
{
    short i, c, n;
    WORD mask;

    n = getbits(CBIT);
    if (n == 0) {
        ...
    } else {
        i = 0;
        while (i < n) {
            c = pt_table[bitbuf >> 8];
            mask = 1 << 7;
            while (c >= NT) {
                if (bitbuf & mask) {
                    c = right[c];
                } else {
                    c = left[c];
                }
                mask >>= 1;
            }
            ...
        }
        ...
    }
}
	  

 上記関数により, ハフマン法で使用するコード長の符号表を読み込みますが, 不十分な終了条件 (c >= NT) によるループが形成されているため, 非常に偏った枝を構成している (連続して c == left[c] となるような) 符号が読み込まれることで, 無限ループに陥ります。

 UNLHA32.DLL とは異なり, CVE-2006-4338 の報告どおり read_pt_len() 関数にも同じ脆弱性が存在します。

更新履歴

  • 脆弱性情報の公開 [Sep.25,2006]
  • 修正版公開に伴う対策情報の更新 [Oct.14,2006]

参考情報

[→Page top] [→『脆弱性情報一覧』] [→Home]