FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:39.libkvm (2002-09-16) * Applications using libkvm may leak sensitive descriptors ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:39.libkvm From: FreeBSD Security Advisories Date: Mon, 16 Sep 2002 09:15:46 -0700 Message-Id: <200209161615.g8GGFk0g073000@freefall.freebsd.org> X-Sequence: announce-jp 1050 を日本語訳したものです。 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには、原文を参照してください。 日本語訳およびミラーサイト利用の詳細については、文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください。 [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:39.libkvm Security Advisory The FreeBSD Project トピック: libkvm を使っているアプリケーションにおいて、 セキュリティ上重要な記述子が漏洩する可能性がある問題 (Applications using libkvm may leak sensitive descriptors) 分類: core モジュール: libkvm 告知日: 2002-09-16 クレジット: David Endler , 影響範囲: 4.6.2-RELEASE および、それ以前のすべてのリリース。 4.4-RELEASE-p27、4.5-RELEASE-p20、4.6.2-RELEASE-p2 より前のセキュリティブランチリリース。 修正日: 2002-09-13 14:53:43 UTC (RELENG_4) 2002-09-13 15:04:22 UTC (RELENG_4_6) 2002-09-13 15:07:26 UTC (RELENG_4_5) 2002-09-13 15:09:07 UTC (RELENG_4_4) FreeBSD に固有か: NO I. 背景 - Background kvm(3) ライブラリは、稼働中のシステムのカーネル仮想メモリイメージや、 クラッシュダンプに含まれるカーネル仮想メモリイメージをアクセスするための 統一されたインターフェイスを提供するライブラリです。稼働中のシステムの場合は、 /dev/mem および /dev/kmem を経由してメモリイメージにアクセスします。 このメモリは読み書き可能であり、カーネルシンボルのアドレスを 効率的に調べたり、ユーザプロセスに関する情報を集めたりするのに 利用することが可能です。 kvm_openfiles(3) 関数は /dev/mem および /dev/kmem という特殊な デバイスファイルをオープンし、他の kvm(3) 関連のライブラリ関数群から 参照できるように、ファイル記述子を (訳注: kvm(3) ライブラリ関数群の 内部からしか中身がわからないように) 詳細が隠蔽された「ハンドル」の形で 返します。 II. 問題の詳細 - Problem Description スワップや仮想メモリ、CPU の利用状況などのシステム情報を表示する アプリケーションは、情報を得るために kvm(3) ライブラリを利用して 直接カーネルメモリを参照するものがあります。 そのようなアプリケーションは kvm_openfiles(3) を呼び出して /dev/mem および /dev/kmem にアクセスできるように、通常は kmem グループに set-group-ID して実行されている必要があります。 そのようなアプリケーションが実行中に exec(2) を使って他の アプリケーションを呼び出すと、新しく起動したアプリケーションには /dev/mem および /dev/kmem に対応するファイル記述子がオープンされたまま 引き継がれます。通常はファイル記述子を (訳注: fcntl(2) を使って) close-on-exec に指定することでこういった状況を回避するのですが、 kvm_openfiles(3) の返すハンドルは (訳注: ファイル記述子そのものを 抽出する方法が規定されていない) 独自形式であり、アプリケーション 側からは kvm(3) ライブラリがオープンしたファイル記述子が、具体的に どれなのかを直接調べる手段がありません。そのためアプリケーション作成者は、 これらのファイル記述子の処理を怠ってしまう可能性があります。 III. 影響範囲 - Impact kmem グループに set-group-ID された kvm(3) を使うアプリケーションのうち、 他のアプリケーションを起動するものにおいて、/dev/mem および /dev/kmem ファイルの記述子が漏洩する可能性があります。 このアプリケーションから起動されるアプリケーションをローカルユーザが 指定できる場合、それらはカーネルメモリを読み出すために利用することが できるかも知れません。カーネルメモリを読み出すことができれば、 結果としてファイルバッファ、ネットワークバッファ、端末バッファ、 認証トークンといったセキュリティ上重要な情報が漏洩することになります。 FreeBSD Ports Collection に含まれる asmon、ascpu、bubblemon、wmmon、 wmnet2 は、この弱点の影響を受けることが確認されています。また、 その他のアプリケーションにも、影響を受けるものがある可能性があります。 IV. 回避方法 - Workaround 影響を受けるアプリケーションの set-group-ID ビットを削除してください。 ただしこの操作により、アプリケーションの一部の機能は使用できなくなります。 V. 解決策 - Solution 次のいずれか一つに従ってください。 1) 弱点を持った FreeBSD システムを最新の 4.6-STABLE にアップグレードする。 あるいは、修正日以降の RELENG_4_6 (4.6.2-RELEASE-p2)、 RELENG_4_5 (4.5-RELEASE-p20)、RELENG_4_4 (4.4-RELEASE-p27) セキュリティブランチのいずれかにアップグレードする。 2) 現在のシステムに修正パッチを適用する。 以下の修正パッチは、FreeBSD 4.4、FreeBSD 4.5、FreeBSD 4.6、 FreeBSD 4.6.2 の各システムに適用可能なことが確認されているものです。 a) 以下の場所から修正パッチをダウンロードし、PGP ユーティリティを使って PGP 署名を確認します。 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:39/libkvm.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:39/libkvm.patch.asc b) root 権限で次のコマンドを実行します。 # cd /usr/src # patch < /path/to/patch # cd /usr/src/lib/libkvm # make depend && make && make install (訳注: /path/to/patch の部分は修正パッチのパス名に置き換えてください) VI. 修正の詳細 - Correction details FreeBSD において今回修正された各ファイルのリビジョン番号は、以下のとおりです。 パス名 リビジョン ブランチ - ------------------------------------------------------------------------- src/lib/libkvm/kvm.c RELENG_4 1.12.2.3 RELENG_4_6 1.12.2.2.8.1 RELENG_4_5 1.12.2.2.6.1 RELENG_4_4 1.12.2.2.4.1 src/sys/conf/newvers.sh RELENG_4_6 1.44.2.23.2.19 RELENG_4_5 1.44.2.20.2.21 RELENG_4_4 1.44.2.17.2.26 - ------------------------------------------------------------------------- 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:39,v 1.5 2002/09/17 19:06:16 hrs Exp $