FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:09 (2002-02-06) * fstatfs race condition may allow local denial of service via procfs ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:09.fstatfs From: FreeBSD Security Advisories Date: Wed, 6 Feb 2002 08:03:40 -0800 (PST) Message-Id: <200202061603.g16G3eh43771@freefall.freebsd.org> X-Sequence: announce-jp 925 を日本語訳したものです. 原文は PGP 署名されていますが, この日本語訳は PGP 署名されていません. 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには, 原文を参照してください. 日本語訳および, ミラーサイト利用の詳細については, 文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください. [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:09 Security Advisory FreeBSD, Inc. トピック: procfs を使ったローカルからのサービス妨害攻撃を 可能にする fstatfs の競合状態 (fstatfs race condition may allow local denial of service via procfs) 分類: core モジュール: kernel 告知日: 2002-02-06 クレジット: Stefan Esser 影響範囲: 4.5-RELEASE より前のすべてのリリース 修正日: 2002-01-07 20:47:34 UTC (RELENG_4) 2002-01-17 15:46:46 UTC (RELENG_4_4) 2002-01-17 15:47:04 UTC (RELENG_4_3) FreeBSD に固有か: YES I. 背景 - Background fstatfs() はカーネル内にあるファイルシステムの統計情報を 取得するための関数です. また, procfs はプロセスファイルシステムと 呼ばれるもので, システムプロセステーブルや関連データに対して, ファイルシステムを使ったインターフェイスを提供します. II. 問題の詳細 - Problem Description fstatfs() が呼び出されてからファイルが実際にアクセスされるまでの間に, そのファイルを削除してファイルディスクリプタを無効にできるような 競合状態が存在します. これを利用すると高い権限を持たない ローカルユーザからカーネルパニックを引き起こすことが可能です. この弱点は, 現時点では procfs ファイルシステムのみに存在することが 確認されています. III. 影響範囲 - Impact 弱点を持った FreeBSD システムにおいて procfs がマウントされている場合, 高い権限を持たないローカルユーザはカーネルパニックを発生させることが できる可能性があります. IV. 回避方法 - Workaround root 権限で次のように unmount(8) コマンドを実行し, マウントされている procfs ファイルシステムをすべてアンマウントします. # umount -f -a -t procfs /etc/fstab にある procfs の自動マウント指定をすべて無効にします. 次のような形の行を削除するか, コメントアウトしてください. proc /proc procfs rw 0 0 ただし procfs をアンマウントすると, システムの動作に支障が出る可能性が あります. FreeBSD の古いバージョンでは ps(1) コマンドの機能の一部に procfs を必要としますし, アンマウントによって gdb のような ユーザランドのプロセス間デバッガの利用もできなくなるでしょう. また Linux エミュレーション機能下で動作するものも含め, その他の バイナリにおいても, 正常な動作のために procfs へのアクセスを 必要とするものがあります. V. 解決策 - Solution 1) 弱点を持った FreeBSD システムを 4.5-RELEASE, もしくは それぞれ修正日以降の 4.5-STABLE, RELENG_4_5, RELENG_4_4, RELENG_4_3 セキュリティブランチにアップグレードする. 2) 修正日より前の FreeBSD 4.x システムの場合: 次の修正パッチは, 修正日より前の FreeBSD 4.x リリースすべてに対して 適用可能なことが確認されているものです. それよりも古いリリースや サポートされていない FreeBSD リリースに対しては, これらの修正パッチが 正しく適用できない可能性があります. 修正パッチと PGP 署名を次の場所からダウンロードして, PGP ユーティリティを使って PGP 署名を確認します. # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:09/fstatfs.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:09/fstatfs.patch.asc そして root 権限で以下のコマンドを実行します. # cd /usr/src # patch -p < /path/to/patch procfs がカーネルに静的にコンパイルされている場合 (つまりカーネル コンフィグファイルに 'option PROCFS' という行が含まれている場合) は, http://www.freebsd.org/handbook/kernelconfig.html の記述に従って カーネルを再構築し, 再インストールしてください. また, 変更を反映させるには 新しいカーネルを使ってシステムを再起動する必要があります. KLD を使って procfs を動的にロードしていて (kldstat コマンドを使うと どちらの場合なのかを調べることが可能です) さらにシステムのセキュアレベルを 上げていなければ, 再起動せずにシステムに修正パッチを適用することが可能です. これには, 上で述べたようにソースファイルに修正パッチを適用した後, 次のコマンドを実行します. # cd /usr/src/sys/modules/procfs # make depend && make all install # umount -f -a -t procfs # kldunload procfs # kldload procfs # mount -a -t procfs VI. 修正の詳細 - Correction details 次の表は, 今回修正された FreeBSD のソースファイルの $FreeBSD$ リビジョン番号です. パス名 リビジョン ブランチ - ------------------------------------------------------------------------- src/sys/kern/vfs_syscalls.c HEAD 1.216 RELENG_4 1.151.2.13 RELENG_4_4 1.151.2.9.2.1 RELENG_4_3 1.151.2.7.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:09,v 1.5 2002/02/07 14:24:47 hrs Exp $