[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

BASP21 の添付ファイル処理のセキュリティ問題



佐名木という者です。

---- 概略
BASP21 と呼ばれている Tatsuo Baba 氏作成の
COM コンポーネントには、メール受信の機能があり、
受信メールの解析処理時の添付ファイル名の処理に
不十分な部分があり、任意のディレクトリへ添付ファ
イルを展開できてしまう。

---- BASP21 とは
Tatsuo Baba 氏作成の COM コンポーネントであり、
以下の URL で配布されている。
http://www.hi-ho.ne.jp/babaq/basp21.html

サード・パーティ製でありながら IIS+ASP 環境で、
多く利用される COM コンポーネントである。

---- 今回問題となる内容
BASP21 のメール受信処理には、
メールを受信する RecvMail() 関数。
RecvMail() 関数で受信した内容を解析する
ReadMail() 関数がある。

ReadMail() 関数では、添付ファイルをディスク上に展開する。
展開するディレクトリは、ReadMail() 関数の第三引数で指定し、
展開するファイル名は、MIME で指定されたファイル名である。

ここで、MIME で指定するファイル名に「..」などのディレクトリ・
トラバーサルを考えたファイル名に書き換えることにより、BASP21
を利用している開発者が指定した以外のディレクトリにファイルが
展開されてしまう。

ディレクトリのアクセス権限や BASP21 の実行権限が許せば、
悪意あるメール送信者が送りつけた添付ファイル付メールによって、
任意のディレクトリに任意のファイルが書き出される危険性がある。

---- 今回の問題の対象者
BASP21 を用いてメール受信を自動化しており、添付ファイル処理を行っている
プログラム、または MailApplication。

---- 対策
BSMTP.dll を 2003/10/08 バージョン以上にする。
または、添付ファイル処理を行わない。
-> ReadMail() 関数の第二引数に "nofile" を指定する。

以上、よろしくお願いします

2003-10/9(木) 16:4:53 作成開始

 -----------------------------------------------------
 佐名木 智貴(Tomoki Sanaki) 
    E-mail=active@xxxxxxxxxxxxxxxxxx
 PGP FingerPrint 
 = 34E5 2A31 45C8 2CB5 3CED  0B46 F328 A402 7182 DCC6