FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-03:07.sendmail (2003-03-30) * a second sendmail header parsing buffer overflow ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: [FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-03:07.sendmail From: FreeBSD Security Advisories Date: Sun, 30 Mar 2003 13:21:04 -0800 (PST) Message-Id: <200303302121.h2ULL47f023145@freefall.freebsd.org> X-Sequence: announce-jp 1120 を日本語訳したものです。 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには、原文を参照してください。 日本語訳およびミラーサイト利用の詳細については、文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください。 [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-03:07.sendmail Security Advisory The FreeBSD Project トピック: sendmail ヘッダ解析におけるもうひとつのバッファオーバフロー問題 (a second sendmail header parsing buffer overflow) 分類: contrib モジュール: contrib_sendmail 告知日: 2003-03-30 クレジット: Michal Zalewski 影響範囲: 4.8-RELEASE と 5.0-RELEASE-p7 より前の、 すべてのバージョンの FreeBSD リリース 修正日より前の FreeBSD 4-STABLE 修正日: 2003-03-29 19:34:13 UTC (RELENG_4) 2003-03-29 21:58:11 UTC (RELENG_5_0) 2003-03-29 21:58:05 UTC (RELENG_4_7) 2003-03-29 21:57:58 UTC (RELENG_4_6) 2003-03-29 21:57:52 UTC (RELENG_4_5) 2003-03-29 21:57:45 UTC (RELENG_4_4) 2003-03-29 21:57:36 UTC (RELENG_4_3) 2003-03-29 20:09:48 UTC (RELENG_3) FreeBSD に固有か: NO I. 背景 - Background FreeBSD では、デフォルトの Mail Transfer Agent (MTA) として、 汎用のネットワーク間メール配送ソフトウェアのひとつである sendmail(8) を採用しています。 II. 問題の詳細 - Problem Description sendmail は、ヘッダ解析時にバッファオーバフローを起こす可能性が あることが判明しました。このオーバフローは、C 言語の型変換に 関連したプログラムのバグが原因で発生するものです。 重要: 影響範囲は非常に似ていますが、これは `FreeBSD-SA-03:04.sendmail' で 説明されている問題とは、別の問題です。 III. 影響範囲 - Impact リモートの攻撃者は、特殊な細工を施したメッセージを作成することで、 sendmail を起動したユーザ (通常は root) の権限で、sendmail に 任意のコードを実行させることができる可能性があります。 この悪意あるメッセージは、最初にメールを受け取る sendmail MTA、 リレーを行なう sendmail MTA、sendmail の配送プロセスなどによって 配送処理が行なわれますが、そのような sendmail が関与する、 すべての過程でこのセキュリティ上の弱点が悪用される危険性があります。 この弱点を悪用することはかなり困難ですが、実現は可能であると考えられています。 IV. 回避方法 - Workaround sendmail を利用しない、という以外に回避方法はありません。 V. 解決策 - Solution 次のいずれか一つに従ってください。 1) 弱点を持った FreeBSD システムを 4,8-RELEASE か最新の 4-STABLE、 もしくは修正日以降の RELENG_5_0 (5.0-RELEASE-p7)、 RELENG_4_7 (4.7-RELEASE-p10)、RELENG_4_6 (4.6.2-RELEASE-p13) セキュリティブランチのいずれかにアップグレードする。 2) 現在のシステムに修正パッチを適用する。 以下の修正パッチは、FreeBSD 5.0、FreeBSD 4.7、FreeBSD 4.6 の 各システムに適用可能なことが確認されています。 a) 以下の場所から修正パッチをダウンロードし、PGP ユーティリティを使って PGP 署名を検証します。 ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail.patch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail.patch.asc b) root 権限で次のコマンドを実行します。 # cd /usr/src # patch < /path/to/patch # cd /usr/src/lib/libsm # make obj && make depend && make # cd /usr/src/lib/libsmutil # make obj && make depend && make # cd /usr/src/usr.sbin/sendmail # make obj && make depend && make && make install (訳注: /path/to/patch の部分は修正パッチのパス名に置き換えてください) c) sendmail を再起動します。root で以下のコマンドを実行してください。 # /bin/sh /etc/rc.sendmail restart 3) i386 システムに限り、修正パッチを適用して構築した sendmail バイナリが 提供されています。運用している FreeBSD のバージョン、 STARTTLS 対応の有無により、正しいバイナリを選択してください。 なお、STARTTLS に対応したバイナリを利用する場合は、 crypto 配布物がインストールされていなければなりません。 a) 以下の場所から修正済バイナリをダウンロードし、PGP ユーティリティを使って PGP 署名を確認します。 ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.6-i386-crypto.bin.gz ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.6-i386-crypto.bin.gz.asc ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.6-i386-nocrypto.bin.gz ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.6-i386-nocrypto.bin.gz.asc ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.7-i386-crypto.bin.gz ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.7-i386-crypto.bin.gz.asc ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.7-i386-nocrypto.bin.gz ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-4.7-i386-nocrypto.bin.gz.asc ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-5.0-i386-crypto.bin.gz ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-5.0-i386-crypto.bin.gz.asc ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-5.0-i386-nocrypto.bin.gz ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:07/sendmail-5.0-i386-nocrypto.bin.gz.asc b) バイナリをインストールします。以下のコマンドを root 権限で実行してください。 次に示すのは、FreeBSD 4.7 システム用の crypto 対応バイナリを 利用した場合の例です。なお、BINARYGZ には、ステップ (a) で ダウンロードしたファイル名を代入してください。 # BINARYGZ=/path/to/sendmail-4.7-i386-crypto.bin.gz # gunzip ${BINARYGZ} # install -s -o root -g smmsp -m 2555 ${BINARYGZ%.gz} /usr/libexec/sendmail/sendmail c) sendmail を再起動します。root 権限で以下のコマンドを実行してください。 # /bin/sh /etc/rc.sendmail restart VI. 修正の詳細 - Correction details FreeBSD において今回修正された各ファイルのリビジョン番号は、以下のとおりです。 ブランチ リビジョン パス名 - ------------------------------------------------------------------------- RELENG_4 src/contrib/sendmail/FREEBSD-upgrade 1.1.2.16 src/contrib/sendmail/RELEASE_NOTES 1.1.1.3.2.15 src/contrib/sendmail/cf/README 1.1.1.3.2.15 src/contrib/sendmail/cf/cf/submit.cf 1.1.1.1.2.8 src/contrib/sendmail/cf/m4/cfhead.m4 1.3.6.8 src/contrib/sendmail/cf/m4/proto.m4 1.1.1.4.2.13 src/contrib/sendmail/cf/m4/version.m4 1.1.1.3.2.15 src/contrib/sendmail/cf/mailer/usenet.m4 1.1.1.2.6.3 src/contrib/sendmail/contrib/buildvirtuser 1.1.1.1.2.5 src/contrib/sendmail/doc/op/op.me 1.1.1.3.2.15 src/contrib/sendmail/editmap/editmap.8 1.1.1.1.2.2 src/contrib/sendmail/include/sm/bdb.h 1.1.1.1.2.2 src/contrib/sendmail/include/sm/conf.h 1.1.1.1.2.7 src/contrib/sendmail/libmilter/docs/api.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/design.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/index.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/installation.html 1.1.1.1.2.3 src/contrib/sendmail/libmilter/docs/other.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/overview.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/sample.html 1.1.1.1.2.3 src/contrib/sendmail/libmilter/docs/smfi_addheader.html 1.1.1.1.2.3 src/contrib/sendmail/libmilter/docs/smfi_addrcpt.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_chgheader.html 1.1.1.1.2.3 src/contrib/sendmail/libmilter/docs/smfi_delrcpt.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_getpriv.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_getsymval.html 1.1.1.1.2.3 src/contrib/sendmail/libmilter/docs/smfi_main.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_register.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_replacebody.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_setbacklog.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_setconn.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_setpriv.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/smfi_setreply.html 1.1.1.1.2.4 src/contrib/sendmail/libmilter/docs/smfi_settimeout.html 1.1.1.1.2.3 src/contrib/sendmail/libmilter/docs/xxfi_abort.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_body.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_close.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_connect.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_envfrom.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_envrcpt.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_eoh.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_eom.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_header.html 1.1.1.1.2.2 src/contrib/sendmail/libmilter/docs/xxfi_helo.html 1.1.1.1.2.2 src/contrib/sendmail/libsm/clock.c 1.1.1.1.2.5 src/contrib/sendmail/libsm/config.c 1.1.1.1.2.3 src/contrib/sendmail/mail.local/mail.local.c 1.6.6.14 src/contrib/sendmail/src/README 1.1.1.3.2.14 src/contrib/sendmail/src/collect.c 1.1.1.4.2.12 src/contrib/sendmail/src/conf.c 1.5.2.14 src/contrib/sendmail/src/deliver.c 1.1.1.3.2.14 src/contrib/sendmail/src/headers.c 1.4.2.10 src/contrib/sendmail/src/main.c 1.1.1.3.2.15 src/contrib/sendmail/src/milter.c 1.1.1.1.2.16 src/contrib/sendmail/src/parseaddr.c 1.1.1.2.6.13 src/contrib/sendmail/src/queue.c 1.1.1.3.2.14 src/contrib/sendmail/src/readcf.c 1.1.1.4.2.14 src/contrib/sendmail/src/sendmail.h 1.1.1.4.2.15 src/contrib/sendmail/src/sm_resolve.c 1.1.1.1.2.3 src/contrib/sendmail/src/srvrsmtp.c 1.1.1.2.6.14 src/contrib/sendmail/src/tls.c 1.1.1.1.2.5 src/contrib/sendmail/src/usersmtp.c 1.1.1.3.2.12 src/contrib/sendmail/src/version.c 1.1.1.3.2.15 RELENG_5_0 src/UPDATING 1.229.2.13 src/contrib/sendmail/src/conf.c 1.18.2.1 src/contrib/sendmail/src/parseaddr.c 1.1.1.14.2.2 src/contrib/sendmail/src/version.c 1.1.1.16.2.1 src/sys/conf/newvers.sh 1.48.2.8 RELENG_4_7 src/UPDATING 1.73.2.74.2.13 src/contrib/sendmail/src/conf.c 1.5.2.11.2.1 src/contrib/sendmail/src/parseaddr.c 1.1.1.2.6.10.2.2 src/contrib/sendmail/src/version.c 1.1.1.3.2.12.2.1 src/sys/conf/newvers.sh 1.44.2.26.2.12 RELENG_4_6 src/UPDATING 1.73.2.68.2.41 src/contrib/sendmail/src/conf.c 1.5.2.8.2.1 src/contrib/sendmail/src/parseaddr.c 1.1.1.2.6.8.2.2 src/contrib/sendmail/src/version.c 1.1.1.3.2.9.2.1 src/sys/conf/newvers.sh 1.44.2.23.2.30 RELENG_4_5 src/UPDATING 1.73.2.50.2.43 src/contrib/sendmail/src/conf.c 1.5.2.6.4.1 src/contrib/sendmail/src/parseaddr.c 1.1.1.2.6.6.4.2 src/contrib/sendmail/src/version.c 1.1.1.3.2.7.4.1 src/sys/conf/newvers.sh 1.44.2.20.2.27 RELENG_4_4 src/UPDATING 1.73.2.43.2.43 src/contrib/sendmail/src/conf.c 1.5.2.6.2.1 src/contrib/sendmail/src/parseaddr.c 1.1.1.2.6.6.2.2 src/contrib/sendmail/src/version.c 1.1.1.3.2.7.2.1 src/sys/conf/newvers.sh 1.44.2.17.2.34 RELENG_4_3 src/UPDATING 1.73.2.28.2.31 src/contrib/sendmail/src/conf.c 1.5.2.4.2.1 src/contrib/sendmail/src/parseaddr.c 1.1.1.2.6.4.2.2 src/contrib/sendmail/src/version.c 1.1.1.3.2.4.2.1 src/sys/conf/newvers.sh 1.44.2.14.2.21 RELENG_3 src/contrib/sendmail/src/conf.c 1.3.2.3 src/contrib/sendmail/src/parseaddr.c 1.1.1.2.2.2 src/contrib/sendmail/src/version.c 1.1.1.2.2.2 - ------------------------------------------------------------------------- VII. 参考資料 - References A. FreeBSD セキュリティ勧告 日本語版について 日本語訳は FreeBSD 日本語ドキュメンテーションプロジェクト (doc-jp) が 参考のために提供するものです。過去の日本語版セキュリティ勧告は http://www.FreeBSD.org/ja/security/ にまとめられています。 ただし翻訳者および doc-jp は、その内容についていかなる保証も いたしませんのでご注意ください。日本語訳についてのご意見、ご要望、 お問い合わせ等は doc-jp@jp.FreeBSD.org までお願いします。 この勧告の中で紹介されている WWW サイト http://www.FreeBSD.org/ および FTP サイト ftp://ftp.FreeBSD.org/ には, 日本のミラーサイトが存在します。 ネットワークの混雑を緩和するため、まずはミラーサイトの利用を 考慮するようお願いします。 日本のミラーサイトを利用するには、 http://www.FreeBSD.org/ を http://www.jp.FreeBSD.org/www.freebsd.org/ に、 ftp://ftp.FreeBSD.org/ を ftp://ftp.jp.FreeBSD.org/ に、 それぞれ置き換えてください。 他の地域を含むミラーサイトに関する詳細は http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors.html (英文) http://www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/mirrors.html (日本語訳) にまとめられています。