FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:32.pppd (2002-07-31) * exploitable race condition in pppd ============================================================================= このメールは、announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:32.pppd From: FreeBSD Security Advisories Date: Wed, 31 Jul 2002 05:02:12 -0700 (PDT) Message-Id: <200207311202.g6VC2CFK023547@freefall.freebsd.org> X-Sequence: announce-jp 1017 を日本語訳したものです。 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには、原文を参照してください。 日本語訳およびミラーサイト利用の詳細については、文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください。 [翻訳者: 倉品 英行 ] --(ここから) ============================================================================= FreeBSD-SA-02:32.pppd Security Advisory The FreeBSD Project トピック: pppd に存在する悪用可能な競合状態 (exploitable race condition in pppd) 分類: core モジュール: pppd 告知日: 2002-07-31 クレジット: Sebastian Krahmer 影響範囲: 4.6.1-RELEASE-p1 を含む修正日以前のすべての FreeBSD 修正日: 2002-07-30 03:50:40 UTC (RELENG_4) 2002-07-30 19:15:52 UTC (RELENG_4_6) 2002-07-30 19:16:46 UTC (RELENG_4_5) 2002-07-30 19:17:27 UTC (RELENG_4_4) FreeBSD に固有か: NO I. 背景 - Background FreeBSD には Point-to-Point Protocol (PPP) の実装がいくつかあり、 そのうちのひとつが pppd です。pppd は基本的なリンクネゴシエーション 機能を提供し、kernel 内のドライバによってカプセル化を行います。 II. 問題の詳細 - Problem Description pppd には、任意のファイルのパーミションを変更して、悪用することのできる 競合状態が存在します。pppd は tty デバイスとして指定したファイルを オープンし、そのパーミションを記録します。ある方法 (例えば tcgetattr(3) が失敗したときなど) によって tty デバイスの初期化に失敗すると、pppd は chmod(2) を呼び出してファイルの本来のパーミションに戻そうとします。 しかし、その chmod(2) 呼び出しはシンボリックリンクの競合を受けやすく、 別のファイルのパーミションを「変更してしまう」可能性があります。 pppd は root に set-user-ID されてインストールされます。そのため、 この方法を用いて任意のファイルのパーミションを変更される可能性がある ということに注意してください。 III. 影響範囲 - Impact 悪意を持ったローカルユーザは、この競合状態を悪用して /etc/crontab の ようにシステムへ致命的な影響を及ぼすファイルの書き込み権限を取得する ことが可能です。この状況を増幅してさらに上位の権限を不正に獲得する ことできます。 FreeBSD 4.4-RELEASE 以降では、ローカルユーザが pppd を実行してこの 競合状態を悪用しようとするためには、dialer グループに所属している 必要があります。 IV. 回避方法 - Workaround root で以下のコマンドを実行して pppd から set-user-ID を削除します。 # chmod u-s /usr/sbin/pppd V. 解決策 - Solution 次のうちのひとつを行ってください。 1) 弱点を持った FreeBSD システムを最新の 4.6-STABLE にアップグレード するか、修正日以降の RELENG_4_6、RELENG_4_5、RELENG_4_4 セキュリティ ブランチ (4.6.1-RELEASE-p2、4.5-RELEASE-p11、または 4.4-RELEASE-p18) のいずれかにアップグレードする。 2) 現在のシステムにパッチを適用する。 以下の修正パッチは、FreeBSD 4.6-RELEASE、4.5-RELEASE、4.4-RELEASE に 適用できることが確認されているものです。 a) 以下の場所から修正パッチをダウンロードし、PGP ユーティリティを使って PGP 署名を確認します。 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:32/pppd.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:32/pppd.patch.asc b) root で以下のコマンドを実行します。 # cd /usr/src # patch < /path/to/patch # cd /usr/src/usr.sbin/pppd # make depend && make && make install (訳注: /path/to/patch の部分は修正パッチのパス名に置き換えてください) VI. 修正の詳細 - Correction details FreeBSD において今回修正された各ファイルのリビジョン番号を以下に示します。 パス名 リビジョン ブランチ - ------------------------------------------------------------------------- usr.sbin/pppd/main.c RELENG_4 1.19.2.1 RELENG_4_6 1.19.10.1 RELENG_4_5 1.19.8.1 RELENG_4_4 1.19.6.1 sys/conf/newvers.sh RELENG_4_6 1.44.2.23.2.7 RELENG_4_5 1.44.2.20.2.12 RELENG_4_4 1.44.2.17.2.17 - ------------------------------------------------------------------------- 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/handbook/mirror.html (英文) http://www.FreeBSD.org/ja/handbook/mirror.html (日本語訳) にまとめられています。 $hrs: announce-jp/FreeBSD-SA/02:32,v 1.4 2002/08/07 09:05:38 hrs Exp $