FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:08 (2002-01-24) * race condition during exec may allow local root compromise ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:08.exec From: FreeBSD Security Advisories Date: Thu, 24 Jan 2002 13:53:28 -0800 (PST) Message-Id: <200201242153.g0OLrSk75448@freefall.freebsd.org> X-Sequence: announce-jp 913 を日本語訳したものです. 原文は PGP 署名されていますが, この日本語訳は PGP 署名されていません. 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには, 原文を参照してください. 日本語訳および, ミラーサイト利用の詳細については, 文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください. [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:08 Security Advisory FreeBSD, Inc. トピック: exec(3) の競合状態に起因するローカルの root 権限の不正利用問題 (race condition during exec may allow local root compromise) 分類: core モジュール: kernel 告知日: 2002-01-24 クレジット: Logan Gabriel , Robert Watson , Dag-Erling Smograv 影響範囲: 4.5-RELEASE より前のすべての FreeBSD 4.x 修正日より前の FreeBSD 4.4-STABLE 修正日: 2002-01-22 17:22:59 UTC (4-STABLE, RELENG_4) 2002-01-23 23:05:00 UTC (4.4-RELEASE-p4, RELENG_4_4) 2002-01-23 23:05:53 UTC (4.3-RELEASE-p24, RELENG_4_3) FreeBSD に固有か: NO I. 背景 - Background set-user-ID もしくは set-group-ID バイナリからプロセスが実行された場合, そのプロセスにはデバッグ用フックが設定できなくなります. そのようなフックの設定が可能だと, そのプロセスを悪用して ユーザが高い権限を得ることができる危険性があるからです. II. 問題の詳細 - Problem Description FreeBSD の exec システムコールの実装には, exec の処理中, プロセスが set-user-ID もしくは set-group-ID されているかどうか カーネルが判断する前に, ユーザからそのプロセスにデバッガを 接続できるような競合状態が存在します. FreeBSD 4.5-RELEASE より前のすべての FreeBSD 4.x が この問題の影響を受けます. この問題の修正は, プロセスの起動後 exec が完了していない状態を `in-exec' 状態と定義することで 行なわれました. つまり `in-exec' 状態のプロセスに対する デバッグ操作はできないようになっています. III. 影響範囲 - Impact ローカルユーザは, ローカルシステムにおける高い権限を不正に 得ることができる可能性があります. IV. 回避方法 - Workaround ありません. 信頼できないユーザがローカルシステムに アクセスできないようにしてください. V. 解決策 - Solution 次のいずれかに従ってください. 1) 弱点を持った FreeBSD システムを, それぞれ修正日以降の 4.4-STABLE, もしくは RELENG_4_3, RELENG_4_4 セキュリティブランチ にアップグレードする. 2) 現在のシステムに修正パッチを適用する. a) 修正パッチを次の場所からダウンロードします. [FreeBSD 4.4-STABLE, もしくは RELENG_4_3, RELENG_4_4 セキュリティブランチ用] ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:08/exec.patch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:08/exec.patch.asc [FreeBSD 4.3-RELEASE 用] ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:08/exec-43R.patch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:08/exec-43R.patch.asc b) PGP ユーティリティを使って PGP 署名を確認します. c) root 権限で以下のコマンドを実行します. # cd /usr/src # patch -p < /path/to/patch そして http://www.freebsd.org/handbook/kernelconfig.html に書かれている手順にしたがってカーネルを再構築し, システムを再起動してください. 3) FreeBSD 4.4-RELEASE システムの場合: 実験的なものですが, アップグレードパッケージが用意されています. これはバイナリアップグレード機能の試験および, それに対する意見を 提供していただけるユーザ向けのものです. このパッケージは FreeBSD 4.4-RELEASE システムにのみインストール可能で, ソースへ 修正パッチを適用することが現実的でなかったり, そうすることが ふさわしくないと考えられるシステムでの利用を考慮したものです. このアップグレードパッケージを利用する場合は, 将来のセキュリティ勧告を より良いものにするため, (肯定的・否定的のいずれであっても) security-officer@FreeBSD.org までご意見をお寄せください. このセキュリティ上の弱点は FreeBSD カーネルに関係しています. しかし, カーネルはインストールされているシステム毎にカスタマイズされていることが 多く, 汎用のバイナリアップグレードパッケージを作成することは不可能です. このパッケージには, 多くのシステムで利用できる GENERIC カーネルに 修正パッチを適用したものを収録しています. カスタマイズされたカーネルが 必要な場合には, 異なる手段を用いてください. インストール処理の途中で, アップグレードパッケージは 置き換えるファイルのバックアップコピーを作成します. アップグレードパッケージが削除された時, このバックアップコピーは 再インストールされてシステムは修正パッチを適用する前の状態に戻ります. # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-02:08/security-patch-exec-02.08.tgz # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-02:08/security-patch-exec-02.08.tgz.asc PGP ユーティリティを使って PGP 署名を確認します. # pkg_add security-patch-exec-02.08.tgz 新しいカーネルの名前は, 標準のカーネル名 (``/kernel'') と衝突しないように /kernel.GENERIC という名前になっています. システムを新しいカーネルで 自動的に起動するように設定するには, 次の行 kernel="/kernel.GENERIC" を /boot/loader.conf に追加して再起動してください. 新しいカーネルに 問題がある場合は, 古いカーネルをブートローダから手動でロードすることが 可能です. VI. 修正の詳細 - Correction details 次の表は, 今回修正された FreeBSD のソースファイルの $FreeBSD$ リビジョン番号です. パス名 リビジョン ブランチ - ------------------------------------------------------------------------- src/sys/conf/newvers.sh RELENG_4_4 1.44.2.17.2.5 RELENG_4_3 1.44.2.14.2.14 src/sys/kern/kern_exec.c RELENG_4 1.107.2.13 RELENG_4_4 1.107.2.8.2.1 RELENG_4_3 1.107.2.5.2.2 src/sys/kern/sys_process.c RELENG_4 1.51.2.3 RELENG_4_4 1.51.2.1.4.1 RELENG_4_3 1.51.2.1.2.1 src/sys/miscfs/procfs/procfs.h RELENG_4 1.32.2.3 RELENG_4_4 1.32.2.2.2.1 RELENG_4_3 1.32.2.1.2.2 src/sys/miscfs/procfs/procfs_ctl.c RELENG_4 1.20.2.2 RELENG_4_4 1.20.2.1.4.1 RELENG_4_3 1.20.2.1.2.1 src/sys/miscfs/procfs/procfs_dbregs.c RELENG_4 1.4.2.3 RELENG_4_4 1.4.2.2.2.1 RELENG_4_3 1.4.2.1.2.1 src/sys/miscfs/procfs/procfs_fpregs.c RELENG_4 1.11.2.3 RELENG_4_4 1.11.2.2.2.1 RELENG_4_3 1.11.2.1.2.1 src/sys/miscfs/procfs/procfs_mem.c RELENG_4 1.46.2.3 RELENG_4_4 1.46.2.2.2.1 RELENG_4_3 1.46.2.1.2.2 src/sys/miscfs/procfs/procfs_regs.c RELENG_4 1.10.2.3 RELENG_4_4 1.10.2.2.2.1 RELENG_4_3 1.10.2.1.2.1 src/sys/miscfs/procfs/procfs_status.c RELENG_4 1.20.2.4 RELENG_4_4 1.20.2.3.4.1 RELENG_4_3 1.20.2.3.2.1 src/sys/miscfs/procfs/procfs_vnops.c RELENG_4 1.76.2.7 RELENG_4_4 1.76.2.5.2.1 RELENG_4_3 1.76.2.3.2.2 src/sys/sys/proc.h RELENG_4 1.99.2.6 RELENG_4_4 1.99.2.5.4.1 RELENG_4_3 1.99.2.5.2.1 - ------------------------------------------------------------------------- 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/handbook/mirror.html (英文) http://www.FreeBSD.org/ja/handbook/mirror.html (日本語訳) にまとめられています. $hrs: announce-jp/FreeBSD-SA/02:08,v 1.2 2002/01/27 05:25:39 hrs Exp $