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 Switch 3.2.0
  • Sendmail Switch for Windows 3.1.3 以前
  • Sendmail Switch 3.1.8 以前
  • Intelligent Quarantine 3.0 (Switchを含む)
  • Sendmail Advanced Message Store (SAMS) (Switchを含む)
  • Sendmail Sentrion 1.5.1 以前
  • Mailstream Gatekeeper (Sentrion OSを含む)
  • Mailstream Governor (Sentrion OSを含む)
  • Sendmail Pro の全てのバージョン
  • 対策済みソフトウェア:
  • Sendmail Switch 3.2.1
  • Sendmail Switch for Windows 3.1.4
  • Sendmail Switch 3.1.9
  • Sendmail Sentrion 1.5.2
  •  上記のソフトウェアについての説明や他のセキュリティアドバイザリなど、Sendmail,Inc のセキュリティアドバイザリ全般についてお知りになりたい方は こちらをご覧ください。

    I. 背景

     Sendmail Switch 製品およびSendmail Sentrion アプライアンスは、SMTPによる、メールの送受信、配送にsendmail MTAを利用しています。sendmail MTAは8-bit MIMEをサポートしていない遠隔のMTAと通信する場合、8-bit MIMEから 7-bit MIMEへの変換をサポートしています。この変換ルーティンでは、古いバージョンのメールユーザエージェントを利用しているユーザをバッファオーバーフローから守るため、MaxMimeHeaderLengthによる制限を実行しています。

     オープンソースやベンダが提供するバージョンのsendmail MTA もこの問題に影響を受けますが、このアドバイザリでは、商用製品についてのみ説明しますので、ご注意ください。オープンソースのバージョンについては以下の関連リンクの項目にあるオープンソースのURLをご覧ください。サードパーティベンダのバージョンについては、それらのベンダに直接お問い合わせください。

    II. 概要

     メッセージの配送時に、特定の深いネスト構造を持つ不正なMIMEメッセージにより、MIMEの8-bitから7-bitへの変換ルーティンがプロセス毎に利用可能なスタックメモリ領域を使い果たし、そのプロセスが強制終了する場合があります。また、システムの設定に依存しますが、この時にそのプロセスのcoreファイルがディスク上に書き残される場合もあります。

     現在わかっている範囲では、この種類の攻撃は行われていません。また、この問題は、直接関係のない不作為に発生した問題のレポートから、発見されました。しかしながら、このアドバイザリの内容が一般に公開されたため、今後、発生する可能性が高くなっているといえます。それゆえ、Sendmailでは、迅速な対応を強く推奨いたします。

    III. 影響範囲

     異常終了するプロセスは常駐プロセスではありません。つまり、新たなコネクションの受信は停止しません。しかし、このバグのために次の2つの問題が発生します。

    1. システムがプロセス毎にユニークなcoreファイルを生成する場合、coreファイルによりディス   ク容量が圧迫される可能性があります。
    2. 深いネスト構造を持つ不正なMIMEメッセージがキューに入ると、そのメッセージの配送時にキュー処理が異常終了します。キュー内にある他のメッセージの配送処理が滞る場合があります。

    IV. ワークアラウンド

     以下の対処方法のセクションに説明してあるパッチをすぐに適応できない場合や、お使いのバージョンではパッチを利用できない場合は、次の対策のいずれかを実施することで、システムを保護できます。

    1. Sendmailコンソーシアムでは、この問題を発生させる可能性のあるメッセージをブロックできるオープンソースのメールフィルタをUNIXシステム向けにリリースします。

        このフィルタについてより詳しくは、以下に紹介してある、Sendmail Knowledge Base 記事をご覧ください。

    2. お使いのオペレーションシステムがスタックサイズを制限している場合、sendmailの起動時にその制限を無効にします。これにより、より大きなメッセージが必要になり、攻撃が成立しにくくなります。また、サーバが受信可能なメッセージの最大サイズを制限する(sendmail のMaxMessageSizeオプションが利用できます)ことで攻撃を完全に排除できます。

        スタックサイズの制限を無効にするには、次のいずれかのコマンドのなかで、お使いのシステムにあったものを、sendmailの起動スクリプトのなかで実行します(sendmailの起動スクリプトに記述することで、sendmailにだけ有効になります)。

                ulimit -s unlimited         (sh, bash, ksh)
                limit stacksize unlimited   (csh, tcsh, zsh)
      

       スタックサイズの制限の調整についてより詳しくは、Sendmail Knowledge Base 記事をご覧ください。

    3. 上記の問題を回避させる設定について

      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 記事をご覧ください。

    V. 対処方法

     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
    

     サポート契約をお持ちでないお客様や、その他の古いバージョンをご利用のお客様は、上記のワークアラウンドのいずれかを実施するようおすすめいたします。

    VI. 関連リンク

    英語版アドバイザリ
          http://www.sendmail.com/advisory/
    
    本アドバイザリについてのよくあるご質問
          http://www.sendmail.com/security/advisories/SA-200605-01/faq.html
    
    Sendmail Knowledge Base 記事
      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
    
    Sendmail オープンソース情報
          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