| Sendmail-SA-200605-01 | Security Advisory |
|---|---|
| Sendmail, Inc. |
| トピック: | Deeply nested Malformed MIME denial of service attack
深いネスト構造を持つ不正なMIMEメッセージによるサービス妨害攻撃 |
|---|---|
| クラス: | リモート サービス妨害攻撃 |
| 深刻度: | 低 |
| 公開日: | 2006-06-14 09:00 PDT |
| クレジット: | Frank Sheiness |
| 影響のあるソフトウェア: |
|
| 対策済みソフトウェア: |
|
上記のソフトウェアについての説明や他のセキュリティアドバイザリなど、Sendmail,Inc のセキュリティアドバイザリ全般についてお知りになりたい方は こちらをご覧ください。
Sendmail Switch 製品およびSendmail Sentrion アプライアンスは、SMTPによる、メールの送受信、配送にsendmail MTAを利用しています。sendmail MTAは8-bit MIMEをサポートしていない遠隔のMTAと通信する場合、8-bit MIMEから 7-bit MIMEへの変換をサポートしています。この変換ルーティンでは、古いバージョンのメールユーザエージェントを利用しているユーザをバッファオーバーフローから守るため、MaxMimeHeaderLengthによる制限を実行しています。
オープンソースやベンダが提供するバージョンのsendmail MTA もこの問題に影響を受けますが、このアドバイザリでは、商用製品についてのみ説明しますので、ご注意ください。オープンソースのバージョンについては以下の関連リンクの項目にあるオープンソースのURLをご覧ください。サードパーティベンダのバージョンについては、それらのベンダに直接お問い合わせください。
メッセージの配送時に、特定の深いネスト構造を持つ不正なMIMEメッセージにより、MIMEの8-bitから7-bitへの変換ルーティンがプロセス毎に利用可能なスタックメモリ領域を使い果たし、そのプロセスが強制終了する場合があります。また、システムの設定に依存しますが、この時にそのプロセスのcoreファイルがディスク上に書き残される場合もあります。
現在わかっている範囲では、この種類の攻撃は行われていません。また、この問題は、直接関係のない不作為に発生した問題のレポートから、発見されました。しかしながら、このアドバイザリの内容が一般に公開されたため、今後、発生する可能性が高くなっているといえます。それゆえ、Sendmailでは、迅速な対応を強く推奨いたします。
異常終了するプロセスは常駐プロセスではありません。つまり、新たなコネクションの受信は停止しません。しかし、このバグのために次の2つの問題が発生します。
以下の対処方法のセクションに説明してあるパッチをすぐに適応できない場合や、お使いのバージョンではパッチを利用できない場合は、次の対策のいずれかを実施することで、システムを保護できます。
このフィルタについてより詳しくは、以下に紹介してある、Sendmail Knowledge Base 記事をご覧ください。
お使いのオペレーションシステムがスタックサイズを制限している場合、sendmailの起動時にその制限を無効にします。これにより、より大きなメッセージが必要になり、攻撃が成立しにくくなります。また、サーバが受信可能なメッセージの最大サイズを制限する(sendmail のMaxMessageSizeオプションが利用できます)ことで攻撃を完全に排除できます。
スタックサイズの制限を無効にするには、次のいずれかのコマンドのなかで、お使いのシステムにあったものを、sendmailの起動スクリプトのなかで実行します(sendmailの起動スクリプトに記述することで、sendmailにだけ有効になります)。
ulimit -s unlimited (sh, bash, ksh)
limit stacksize unlimited (csh, tcsh, zsh)
スタックサイズの制限の調整についてより詳しくは、Sendmail Knowledge Base 記事をご覧ください。
a.次のいずれかのコマンドをsendmailの起動スクリプト内で実行し、sendmailのcoreダンプを無効にします(sendmailの起動スクリプト内に記述することで、sendmailにだけ有効になります)。
ulimit -c 0 (sh, bash, ksh)
limit coredumpsize 0 (csh, tcsh, zsh)
core ダンプを無効にする方法についてより詳しくは、Sendmail Knowledge Base 記事をご覧ください。
b.キューされた他のメッセージが処理されないまま放置されないために:
* キュー処理の低い処理効率や潜在的なプロセス数の増加などを犠牲にして、ForkEachJobオプションを有効にします。または、
* ジョブの処理をランダムな順番で実施するように、QueueSortOrderをrandomに設定します。ランダムなキュー処理を利用した場合でも、問題のメッセージは処理され、そのキュー処理は毎回異常終了します。しかし、ランダムに発生します。
キュー処理実行方法の変更についてより詳しくは、Sendmail Knowledge Base 記事をご覧ください。Sendmail, Incは Sendmail Switch バージョン 3.1と3.2また、Sendmail Switch for Windows 3.1、Sendmail Sentrion バージョン 1.5に対してパッチをリリースします。サポート契約をお持ちのお客様はこれらのパッチをそれぞれのダウンロードサイトからダウンロードできます:
https://www.sendmail.com/customerlogin/
ダウンロードサイトをご利用になれない場合は、以下のftpサイトからダウンロードできます。
ftp://ftp.sendmail.com/patch/
インストール方法については、それぞれのパッチに含まれるREADMEファイルをご覧ください。
ご提供しておりますパッチは次のものです
MD5 (smswitch-patch-3.1.9-Linux.tar.gz) = 7d266b9b43d17daa3be3dbe7166ff9f9
MD5 (smswitch-patch-3.1.9-Solaris8.tar.Z) = a62a0aef50c561e45a5402a0acd3639a
MD5 (smswitch-patch-3.2.1-Linux.tar.gz) = 30db674de1e29c3fe9f4e81ff8a260f8
MD5 (smswitch-patch-3.2.1-Solaris8.tar.Z) = 8aa905dfe49d2d68d643695c44410d76
MD5 (smswitch-patch-3.1.4-Windows.zip) = d863292580b89a704b0692a4d8a6e481
MD5 (SentriOS-152-867.tar) = f1cf9c8406bce0a2fd0d491691a26366
サポート契約をお持ちでないお客様や、その他の古いバージョンをご利用のお客様は、上記のワークアラウンドのいずれかを実施するようおすすめいたします。
http://www.sendmail.com/advisory/
http://www.sendmail.com/security/advisories/SA-200605-01/faq.html
SwitchとSentrionにおいて、不正MIME対処フィルタを利用する方法について
https://www.sendmail.com/cfusion/CFIDE/kb_doc.cfm?kb_id=S10808
SwitchとSentrionにおいてスタックサイズやcoreダンプの調整について
https://www.sendmail.com/cfusion/CFIDE/kb_doc.cfm?kb_id=S10805
SwitchとSentrionにおいて最大メッセージサイズの制限方法について
https://www.sendmail.com/cfusion/CFIDE/kb_doc.cfm?kb_id=S10807
SwitchとSentrionにおいてキュー処理の変更方法について
https://www.sendmail.com/cfusion/CFIDE/kb_doc.cfm?kb_id=S10806
http://www.sendmail.org/releases/8.13.7.html
CERT: http://www.kb.cert.org/vuls/id/146718
CVE: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1173