FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-01:62 (2001-10-08) * UUCP allows local root exploit ============================================================================= このメールは, announce-jp に流れた Subject: FreeBSD Security Advisory FreeBSD-SA-01:62.uucp From: FreeBSD Security Advisories Date: Mon, 8 Oct 2001 14:08:41 -0700 (PDT) Message-Id: <200110082108.f98L8fR93294@freefall.freebsd.org> X-Sequence: announce-jp 836 を日本語訳したものです. 原文は PGP 署名されていますが, この日本語訳は PGP 署名されていません. 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには, 原文を参照してください. 日本語訳および, ミラーサイト利用の詳細については, 文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください. [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-01:62 Security Advisory FreeBSD, Inc. トピック: UUCP のローカルにおける root 権限の不正使用問題 (UUCP allows local root exploit) 分類: core モジュール: uucp 告知日: 2001-10-08 クレジット: zen-parse@gmx.net 影響範囲: FreeBSD 4.4 より前の, すべての FreeBSD 4.x 修正日以前の FreeBSD 4.3-STABLE 修正日: 2001-09-10 20:22:57 UTC (FreeBSD 4.3-STABLE) 2001-09-10 22:30:28 UTC (RELENG_4_3) FreeBSD に固有か: NO I. 背景 - Background Taylor UUCP は Unix-to-Unix Copy Protocol 実装の一つです. このプロトコルは, インターネットと IP による常時接続ができない システムのメール配送において良く利用されています. II. 問題の詳細 - Problem Description UUCP ユーティリティ群はコマンドラインから設定ファイルを指定する ことができるようになっていますが, この設定ファイル処理には欠陥があり, 高い権限を持たないローカルユーザが uucp ユーザ, あるいは dialer グループの 権限で任意のコードを実行することができる危険性があります. これは UUCP ユーティリティが uucp ユーザで setuid されていたり, もしくは dialer ユーザで setgid されているため, そのユーザ・グループの 権限で動作するためです. uucp ユーザは大部分の UUCP バイナリの所有者となっている (これは UUCP の通常の運用において, setuid の機能を使ってスプールディレクトリへの 書き込みを行なう必要があることによる) ため, 攻撃者はこれらのバイナリを, ユーザがそのバイナリを実行した時に, あるコマンドを実行するような トロイの木馬を仕込んだものと置き換えることが可能です. また uustat バイナリは, デフォルトで毎日の保守用スクリプトから root 権限で実行されます. FreeBSD 4.3-RELEASE を含む, 修正日以前のすべての FreeBSD 4.x が この問題の影響を受けます. この問題は FreeBSD 4.4 のリリース前に 修正されたため, FreeBSD 4.4 に対する影響はありません. III. 影響範囲 - Impact 高い権限を持たないローカルのユーザは, uustat バイナリを上書きすることが 可能です. このバイナリは毎日のシステム保守スクリプトから root 権限で 実行されるため, ローカルユーザは次回の保守スクリプトの実行時に root 権限で 任意のコマンドを実行することができる可能性があります. IV. 回避方法 - Workaround 次に示す方法のいずれかに従うか, もしくはいくつかを併用してください. 1) uucp ユーザの所有するすべてのバイナリに noschg フラグをセットする. # chflags schg /usr/bin/cu /usr/bin/uucp /usr/bin/uuname \ /usr/bin/uustat /usr/bin/uux /usr/bin/tip /usr/libexec/uucp/uucico \ /usr/libexec/uucp/uuxqt 2) UUCP を利用していなければ, 上記バイナリをシステムから削除する. 3) 次の行を /etc/periodic.conf に追加し, 毎日の UUCP 保守タスクを 無効にする. # 340.uucp daily_uuclean_enable="NO" # Run uuclean.daily # 410.status-uucp daily_status_uucp_enable="NO" # Check uucp status # 300.uucp weekly_uucp_enable="NO" # Clean uucp weekly V. 解決策 - Solution 信頼できないユーザがいるシステムでは, 上記セクション IV を参考に UUCP を完全に削除することを推奨します. FreeBSD システムの再構築時に UUCP バイナリを構築しないようにするには, 次の行を /etc/make.conf に 追加してください. NOUUCP=true [訳注: 次のいずれかに従ってください.] 1) 弱点を持った FreeBSD システムを修正日以降の FreeBSD 4.4-STABLE もしくは RELENG_4_3 セキュリティブランチにアップグレードする. 2) 現在のシステムに修正パッチを適用する. 以下の場所から修正パッチを ダウンロードし, root 権限で次のコマンドを実行してください. [FreeBSD 4.3 の場合] # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:62/uucp.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:62/uucp.patch.asc ダウンロード後に PGP ユーティリティを使って PGP 署名を確認します. # cd /usr/src # patch -p < /path/to/patch # make depend && make all install 3) FreeBSD 4.3-RELEASE システムの場合: 実験的なものですが, アップグレードパッケージが用意されています. これはバイナリアップグレード機能の試験および, それに対する意見を 提供していただけるユーザ向けのものです. このパッケージは FreeBSD 4.3-RELEASE システムにのみインストール可能で, ソースへ 修正パッチを適用することが現実的でなかったり, そうすることが ふさわしくないと考えられるシステムでの利用を考慮したものです. このアップグレードパッケージを利用する場合は, 将来のセキュリティ勧告を より良いものにするため, (肯定的・否定的のいずれであっても) security-officer@FreeBSD.org までご意見をお寄せください. インストール処理の途中で, アップグレードパッケージは 置き換えるファイルのバックアップコピーを作成します. アップグレードパッケージが削除された時, このバックアップコピーは 再インストールされてシステムは修正パッチを適用する前の状態に戻ります. # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:62/security-patch-uucp-01.62.tgz # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:62/security-patch-uucp-01.62.tgz.asc ダウンロード後に PGP ユーティリティを使って PGP 署名を確認します. # pkg_add security-patch-uucp-01.62.tgz VI. 修正の詳細 - Correction details この問題に対する保守中の各ブランチへの修正は, 以下の $FreeBSD$ CVS リビジョンに 含まれています. インストール済みソースファイルの $FreeBSD$ リビジョン番号は ident(1) コマンドを使うことで確認できます. これらのリビジョン ID は 上記の修正パッチが適用されても更新されません. [RELENG_4_3] リビジョン番号 パス名 1.8.4.1 src/gnu/libexec/uucp/cu/Makefile 1.6.4.1 src/gnu/libexec/uucp/uucp/Makefile 1.5.4.1 src/gnu/libexec/uucp/uuname/Makefile 1.5.4.1 src/gnu/libexec/uucp/uustat/Makefile 1.6.4.1 src/gnu/libexec/uucp/uux/Makefile 1.10.8.1 src/usr.bin/tip/tip/Makefile 1.3.2.2.2.1 src/etc/periodic/daily/410.status-uucp 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/01:62,v 1.5 2001/12/02 00:00:16 hrs Exp $