アカウント名:
パスワード:
# IPA は、JPCERT/CC よりはましとはいえ、まともに仕事する (と思っている) わけではないですけど、様子から見るとたぶん 7-zip.org には連絡していないな。
#作者はバグと言っているけど……
・2007/08/15 調査の結果、本家7-Zipのライブラリにスタックオーバーフローの問題を発見。 本家7-Zipに問題を報告、修正依頼。・2007/08/27 本家7-Zip、4.53 betaにバージョンアップ。スタックオーバーフローの問題修正。・2007/08/30 7-Zip32.dllのソースにヒープバッファオーバーフローの問題発見。 同時に問題修正、JPCERT/CCに連絡しリリース及び情報公開時期を調整。
ここまで詳しい情報が出てるのに、無視して記事を書くというのは凄いな。
タレコミ文に重要な情報が書かれていないとは僕も感じました。 7-Zip32.dll なんて知らなかったので、てっきり 7-Zip にバッファオーバーフローが見つかったのかと思いましたし。でも、補足は補足が必要だと思った人がするということで良いのではないかとも思います。
まず、 7-Zip32.dll [cjb.net] というのは 7-Zip [7-zip.org] のソースコードに手を加えて統合アーカイバプロジェクト [csdinc.co.jp]の仕様に合うようにして作られた DLL です。ここでは改変前の 7-Zip を本家と呼びます。
7-Zip32.dll の作者である秋田稔さんの説明 [cjb.net]には、本家のコードにはスタックオーバーフローがあると書かれています。このスタックオーバーフローの詳細はよくわかりませんが、 7-Zip32.dll のバッファオーバーフローとは別個の問題のように見えます。
発見者である鵜飼裕司さんによるアドバイザリー [FFRRA-20070905] 7-ZIP32.DLL におけるバッファオーバーフローの脆弱性 [fourteenforty.jp]には、本家のスタックオーバーフローというのは出てきません。
秋田さんと鵜飼さんの説明を合わせると、
という感じに見えます。本家コードでスタックオーバーフローが発生しなくても、結局 7-Zip32.dll のエラーメッセージ表示ルーチンが呼ばれてバッファオーバーフローが起きることには変化がないのではないかと想像されます。なので、二つは別個の問題だと思います。そもそも本家のスタックオーバーフローというのはセキュリティーホールではないのではないかとも思います。
普通、スタックオーバーフローは自動的に検出されるので、攻撃が難しいです。なお、「スタック・オーバーフローで任意コードを実行できるか? [nikkeibp.co.jp]」 (今回の発見者と同じ鵜飼さんによる 2006 年の記事) によると、特殊な状況ではスタックオーバーフローが攻撃できる場合もあるらしいですが、僕には文中の条件 1 が満たされる状況がそもそも想像できません。
技術的内容はともかく,そもそも本家7-Zipで使われているdllのファイル名は7-zip.dllであって,7-zip32.dllじゃない.
はい、そうです。なお、本家 7-Zip には 7-zip.dll 以外に 7z.dll という名前の DLL ファイルも含まれます。念のため。
#1217082 [srad.jp] を書いたのは、今回 7-Zip32.dll の 4.42.00.03 以前に見つかったバッファーオーバーフローが本家 7-Zip にも関係あると思っている人が多いように感じたからです。詳しく見たわけではないので、僕がわかっていないだけで本当は関係があるのかもしれませんけど。
>そもそも本家のスタックオーバーフローというのはセキュリティーホールではないのではないかとも思います。 スタックオーバーフローとバッファオーバーフローとヒープオーバーフローの定義が正しく運用されない限り、発見者/対応者の発言から危険度を判断はつかないと思います。 実際、発見元でさえ、タイトルにバッファオーバーフローと書いていながら、説明文ではヒープオーバーフローとなっている訳ですし、その鵜飼氏さえも、「”スタック・ベースのバッファ・オーバーフロー”が“短縮”されて、まれに”スタック・オーバーフロー”と呼ばれる」と認めているわけですから。
>そもそも本家のスタックオーバーフローというのはセキュリティーホールではないのではないかとも思います。
スタックオーバーフローとバッファオーバーフローとヒープオーバーフローの定義が正しく運用されない限り、発見者/対応者の発言から危険度を判断はつかないと思います。
実際、発見元でさえ、タイトルにバッファオーバーフローと書いていながら、説明文ではヒープオーバーフローとなっている訳ですし、その鵜飼氏さえも、「”スタック・ベースのバッファ・オーバーフロー”が“短縮”されて、まれに”スタック・オーバーフロー”と呼ばれる」と認めているわけですから。
ご指摘ありがとうございます。確かに、秋田さんのいう「スタックオーバーフロー」がスタック内のバッファーのオーバーフローの意味だったらそっちもセキュリティーホールになりえますね。僕はその用法は誤りだと思っていますが、確かにその意味で使われている例は見たことがあります。
#1217082 [srad.jp] の内容のうち、秋田さんの説明中に出てくる本家 7-Zip の 4.53 より前 (どのバージョン?) に見つかった「スタックオーバーフロー」 (詳細不明) は、 7-Zip32.dll の 4.42.00.03 以前に見つかったバッファーオーバーフローとは独立した話であって分けて考えるべき、という点は依然有効だと思っています。
詳細は「非常に深い再帰呼び出しが発生しスタックが消費し尽くされスタックオーバーフローが発生します。」と書かれていますよ。
なんだ、書いてあるじゃん! 読んだのにもう忘れていました。たぶん 3 歩歩くとすべて忘れるのでしょう。
ということで、 #1217489 [srad.jp] は間違いです。やっぱり本家 7-Zip にセキュリティーホールなんか最初からなかったのでは、というのが現時点の僕の結論です。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
つか (スコア:2, 参考になる)
# IPA は、JPCERT/CC よりはましとはいえ、まともに仕事する (と思っている) わけではないですけど、様子から見るとたぶん 7-zip.org には連絡していないな。
Re:つか (スコア:2, 参考になる)
なんだか相当に厄介なバグみたいですね。
Re:つか (スコア:1)
#作者はバグと言っているけど……
Re:つか (スコア:1, すばらしい洞察)
とここまで詳しい情報が出てるのに、無視して記事を書くというのは凄いな。特定の2次情報の劣化コラージュ以外禁止されてるのか、本家にも当たったけど「信頼に足る情報」が入手できなかったのか。
ところで、本家のhistory.txtにある、Version 4.55 beta 2007-09-05 Some bugs were fixedってのは、互換DLL同様にヒープバッファオーバーフローの問題を修正したんだろうかね(互換DLL配布サイトの説明だと、08/30に発見された問題は互換DLL特有の問題であるように読めるけど)。
本家7-Zipのスタックオーバーフローは無関係では (Re:つか) (スコア:2, 興味深い)
タレコミ文に重要な情報が書かれていないとは僕も感じました。 7-Zip32.dll なんて知らなかったので、てっきり 7-Zip にバッファオーバーフローが見つかったのかと思いましたし。でも、補足は補足が必要だと思った人がするということで良いのではないかとも思います。
まず、 7-Zip32.dll [cjb.net] というのは 7-Zip [7-zip.org] のソースコードに手を加えて統合アーカイバプロジェクト [csdinc.co.jp]の仕様に合うようにして作られた DLL です。ここでは改変前の 7-Zip を本家と呼びます。
7-Zip32.dll の作者である秋田稔さんの説明 [cjb.net]には、本家のコードにはスタックオーバーフローがあると書かれています。このスタックオーバーフローの詳細はよくわかりませんが、 7-Zip32.dll のバッファオーバーフローとは別個の問題のように見えます。
発見者である鵜飼裕司さんによるアドバイザリー [FFRRA-20070905] 7-ZIP32.DLL におけるバッファオーバーフローの脆弱性 [fourteenforty.jp]には、本家のスタックオーバーフローというのは出てきません。
秋田さんと鵜飼さんの説明を合わせると、
という感じに見えます。本家コードでスタックオーバーフローが発生しなくても、結局 7-Zip32.dll のエラーメッセージ表示ルーチンが呼ばれてバッファオーバーフローが起きることには変化がないのではないかと想像されます。なので、二つは別個の問題だと思います。そもそも本家のスタックオーバーフローというのはセキュリティーホールではないのではないかとも思います。
普通、スタックオーバーフローは自動的に検出されるので、攻撃が難しいです。なお、「スタック・オーバーフローで任意コードを実行できるか? [nikkeibp.co.jp]」 (今回の発見者と同じ鵜飼さんによる 2006 年の記事) によると、特殊な状況ではスタックオーバーフローが攻撃できる場合もあるらしいですが、僕には文中の条件 1 が満たされる状況がそもそも想像できません。
Re:本家7-Zipのスタックオーバーフローは無関係では (Re:つか) (スコア:2, 参考になる)
だから本家7-Zipアーカイバとは別の問題だよね.(それとも7-zip.dllの脆弱性も報告されてるのか?)
### 本家7-Zipアーカイバの愛用者だからタレコミ見てすごく焦った......
Re:本家7-Zipのスタックオーバーフローは無関係では (Re:つか) (スコア:2, 興味深い)
はい、そうです。なお、本家 7-Zip には 7-zip.dll 以外に 7z.dll という名前の DLL ファイルも含まれます。念のため。
#1217082 [srad.jp] を書いたのは、今回 7-Zip32.dll の 4.42.00.03 以前に見つかったバッファーオーバーフローが本家 7-Zip にも関係あると思っている人が多いように感じたからです。詳しく見たわけではないので、僕がわかっていないだけで本当は関係があるのかもしれませんけど。
Re:本家7-Zipのスタックオーバーフローは無関係では (Re:つか) (スコア:1, 参考になる)
>そもそも本家のスタックオーバーフローというのはセキュリティーホールではないのではないかとも思います。
スタックオーバーフローとバッファオーバーフローとヒープオーバーフローの定義が正しく運用されない限り、発見者/対応者の発言から危険度を判断はつかないと思います。
実際、発見元でさえ、タイトルにバッファオーバーフローと書いていながら、説明文ではヒープオーバーフロー [fourteenforty.jp]となっている訳ですし、その鵜飼氏さえも、「”スタック・ベースのバッファ・オーバーフロー”が“短縮”されて、まれに”スタック・オーバーフロー”と呼ばれる [nikkeibp.co.jp]」と認めているわけですから。
#スタックオーバーフローの94%は乙女心で出来ています [nosv.org]
#ヒープオーバーフローの68%は怨念で出来ています [nosv.org]
#バッファオーバーフローの47%は犠牲で出来ています [nosv.org]
Re:本家7-Zipのスタックオーバーフローは無関係では (Re:つか) (スコア:1)
ご指摘ありがとうございます。確かに、秋田さんのいう「スタックオーバーフロー」がスタック内のバッファーのオーバーフローの意味だったらそっちもセキュリティーホールになりえますね。僕はその用法は誤りだと思っていますが、確かにその意味で使われている例は見たことがあります。
#1217082 [srad.jp] の内容のうち、秋田さんの説明中に出てくる本家 7-Zip の 4.53 より前 (どのバージョン?) に見つかった「スタックオーバーフロー」 (詳細不明) は、 7-Zip32.dll の 4.42.00.03 以前に見つかったバッファーオーバーフローとは独立した話であって分けて考えるべき、という点は依然有効だと思っています。
Re:本家7-Zipのスタックオーバーフローは無関係では (Re:つか) (スコア:0)
Re:本家7-Zipのスタックオーバーフローは無関係では (Re:つか) (スコア:1)
なんだ、書いてあるじゃん! 読んだのにもう忘れていました。たぶん 3 歩歩くとすべて忘れるのでしょう。
ということで、 #1217489 [srad.jp] は間違いです。やっぱり本家 7-Zip にセキュリティーホールなんか最初からなかったのでは、というのが現時点の僕の結論です。