9月 232006
 

LZH形式の産みの親のひとりである奥村氏のblogに、以下のエントリがありました。
gzipだけじゃない脆弱性
http://oku.edu.mie-u.ac.jp/~okumura/blog/node/1047
短いので全文引用させていただきます (太字部分はこちらで勝手に追加していますので、詳細は第一次ソースである奥村氏のblog参照をお勧め)。

Bug 204676: CVE-2006-4334 gzip multiple issues (CVE-2006-4335, CVE-2006-4336, CVE-2006-4337, CVE-2006-4338) を読んでびっくり。要は私が1989年に書いたLHAの元になったC言語ソースでチェックをさぼっていたところが今になって見つかってしまったわけだ。申し訳ないがこれはgzipだけの問題ではなく,あちこちにあるLHA対応の解凍ソフトは全滅かも。あいたたたっ。

lzh解凍部に「for (i = 0; i < nchar; i++) count[bitlen[i]]++;」といういにしえのコードがあって、そこを利用してスタックを攻撃者によって自由に書き換えできてしまうというもののようですね。つまりはバッファオーバーフロー誘発により任意のコードが実行できるという、セキュリティ系のニュースではよく見る脆弱性ですね。そして、この脆弱性が見つかったきっかけは、gzip 1.3.5 にある別の脆弱性(NULLポインタ参照)でした、と。
ということで、UNLHA32.DLL ならびに TAR32.DLL (gzip系) の解凍コードに脆弱性を含む可能性があります。また、gzip を内部的に利用している BGA32.DLL (gza系) もこの脆弱性を含む可能性がありますし、UNARJ 系やUNZIP系 や XacRett 移植の処理系 (DLLや mxd 等)についても調査が必要になるかもしれません (奥村氏のblogに「LHAの元になったC言語ソースでチェックをさぼっていたところ」、という記述があるため)
ここの開発日誌で「可能性」としているのは、ソースコードがクローズドな UNLHA / UNARJ / BGA な DLL は調査不可能であることや、ソースコードが公開されている TAR についても精査している時間的な余裕がほとんどない(現在 Meltice Family などの開発凍結状態であることは皆さんもご存じかと思います)、という状況ですので、まずはご報告まで。
 Meltice Family においては、本体に解凍コードが含まれていない(基本的に DLL や mxd に丸投げ)という仕組み上、DLLの調査結果待ちということになるかと思います。XacRett.mxd については精査したいのですが、おそらく年内いっぱいは本業多忙と思われるため、保留です。よって、信頼できない lzh tar.gz 書庫の取り扱いには十分ご注意ください。
日本語のソースとしては、Slashdot Japan の以下のストーリーが、日本語の情報がまとまっていたりコメントで情報補完できることが考えられます。
セキュリティ: gzipに複数の脆弱性~LHAにも関連あり?
http://slashdot.jp/security/article.pl?sid=06/09/22/1619245

Sorry, the comment form is closed at this time.