バグ報告(もしかしたらセキュリティホーNo.17370
秀まるお2 さん 04/04/02 14:46
 
 実は、とあるセキュリティ研究所の人から、鶴亀メールにセキュリティホール
があると連絡がありました。

 具体的には、From:ヘッダ中のメールアドレスが、256〜512バイト程度である
と、鶴亀メールが死んでしまうという物でして、たしかに内部的に、いわゆるバ
ッファオーバーフローのバグが発生していました。

 一応言い訳すると、メールアドレスの長さが、以前は250バイト程度までしか
許されない所を500バイト程度まで拡張して欲しいと言われて、それに伴ってい
ろいろバッファを拡張したつもりが、一部拡張してない所があってバグってまし
た。

 なので、256バイトのバッファをオーバーしてしまうということで、いわゆる
バッファオーバーランということにはなります。

 ただ、それで「任意のマシンコードが実行可能」と言うにはおおげさな気がし
まして、具体的にオーバーランして壊される所にはcall/returnのアドレスがあ
る訳じゃなくて、別の変数があってそれが壊れるだけです。なので、そういう特
定の変数の中身を任意に書き換えて壊すことはできつつも、それで任意の所にジ
ャンプさせる(EIPアドレスを好きにコントロールする)ことは出来ないんじゃ
ないかと思います。

 ということで、一応その辺のソースコード部分をお渡しなどしてはいますけど、
今のところよく分かりません。

 とにかくバグはバグで手元の所では直したので、ご要望などありましたら緊急
でバージョンアップしたいと思います。

[ ]
RE:17370 バグ報告(もしかしたらセキュリNo.17371
秀まるお2 さん 04/04/02 15:18
 
 すみません。修正させていただきます。

 やはり、call/returnの戻り値部分も含めてバッファオーバーランしてました。
なので、eipアドレスを任意に書き換えできると言われれば出来るような気がし
ます。

 一応、emailアドレスの解析部分を通ってきたデータでしかオーバーランでき
ないので、00h〜20hおよび0x7F以上の文字を入れることは出来なくて、「任意
に」と言う訳ではありませんが…。

[ ]
RE:17371 バグ報告(もしかしたらセキュリNo.17373
秀まるお2 さん 04/04/02 16:18
 
 何度もすみません。別の所にもバッファオーバーランのバグがありました。非
常に長いEmailアドレスをマウスで右クリックするとダメでした。これはだいぶ
前からのバグでした。

 一応、飛び先アドレスとして指定できるのは、Emailアドレスとして使える文
字のみを使って生成したアドレスだけなので、例えばスタック上(0011xxxx上)
には飛ばすことは出来ないと思うんですけど、セキュリティの専門家によると、
その人の送り込んだ任意のマシンコードを実行させることに成功したとのことだ
そうです。

 なので、これはこれで、ちゃんとした人が見たら立派なセキュリティホールと
いうことなので、やはり早急に対処させていただきます。

-------------------
 任意のマシンコードを送り込む方法というのがまだよく分からないんですけど、
可能性として添付ファイルの中にそういうのを埋め込みつつ、メモリ上に残った
添付ファイルの残骸部分をうまく実行させるのかなぁと思ったりします。なので、
添付ファイルをデコードした後のメモリをゼロクリアする処理も念のため入れて
おきます。

[ ]