FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:25 (2002-05-20) * bzip2 contains multiple security vulnerabilities ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:25.bzip2 From: FreeBSD Security Advisories Date: Mon, 20 May 2002 09:08:14 -0700 (PDT) Message-Id: <200205201608.g4KG8Ee23981@freefall.freebsd.org> X-Sequence: announce-jp 985 を日本語訳したものです。 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには、原文を参照してください。 日本語訳およびミラーサイト利用の詳細については、文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください。 [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:25 Security Advisory The FreeBSD Project トピック: bzip2 におけるセキュリティ上の弱点 (bzip2 contains multiple security vulnerabilities) 分類: core/ports モジュール: bzip2 告知日: 2002-05-20 クレジット: Volker Schmidt, Philippe Troin 影響範囲: FreeBSD 4.4-RELEASE, FreeBSD 4.5-RELEASE, 修正日より前の FreeBSD 4.5-STABLE bzip2-1.0.2 より前の bzip2 port 修正日: 2002-02-18 09:12:53 UTC (4.5-STABLE, RELENG_4) 2002-02-23 18:28:09 UTC (4.5-RELEASE-p1, RELENG_4_5) 2002-02-23 18:33:18 UTC (4.4-RELEASE-p8, RELENG_4_4) 2002-02-22 13:21:22 UTC (bzip2 port) FreeBSD に固有か: NO I. 背景 - Background bzip2 は、高度なブロックソート法を使ったファイル圧縮ユーティリティです。 II. 問題の詳細 - Problem Description bzip2 ユーティリティは復元処理中にファイルを作成するのですが、 この時に O_EXCL フラグを使いません。そのため、事前に警告することなく 既存のファイルを上書きしてしまう可能性があります。また、bzip2 ユーティリティは新しいファイルの作成にセキュアな手段を用いておらず、 ファイルの作成と適切な許可属性の設定との間に競合状態が存在します。 bzip2 ユーティリティはシンボリックリンクが指しているファイルを 圧縮する場合、ファイルの許可属性ではなく、誤って シンボリックリンクの許可属性をそのファイルに設定してしまいます。 これは非常にゆるい許可属性 (rwxr-xr-x) になる可能性があり、 復元されたファイルが誰でも読めるようになってしまう原因となります。 bzip2 が FreeBSD に統合されたのは FreeBSD 4.4-RELEASE の公開の前です。 それより前のバージョンの FreeBSD には bzip2 が含まれていないため、 システム管理者が bzip2 を Ports Collection を使って、あるいは手作業で インストールしていない限り、そのシステムはこの問題の影響を受けません。 III. 影響範囲 - Impact 1) ファイルが警告なしに上書きされる危険性があります。 2) ファイルの作成と適切な許可属性の設定の間に競合状態が存在するため、 設定しようとしている許可属性とは無関係に、ローカルユーザは そのファイルの内容を読むことができる可能性があります。 3) 復元されたファイルが元々シンボリックリンクで指されたものだった場合、 ローカルユーザがファイル内容を読むことができるような、正しくない 許可属性が設定される可能性があります。 IV. 回避方法 - Workaround bzip2 の port/package がインストールされている場合は、 それをシステムから削除します。 V. 解決策 - Solution [FreeBSD 4.4 もしくは 4.5 のベースシステムの場合] 1) 弱点を持った FreeBSD システムを修正日以降の 4.5-STABLE、もしくは RELENG_4_4、RELENG_4_5 セキュリティブランチのいずれかにアップグレードする。 2) 現在のシステムに修正パッチを適用する。以下の場所から修正パッチをダウンロードし、 root 権限で次のコマンドを実行します。 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:25/bzip2.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:25/bzip2.patch.asc PGP ユーティリティを使って PGP 署名を確認します。 この修正パッチは、FreeBSD 4.4-RELEASE および 4.5-RELEASE に 適用できることが確認されているものです。 # cd /usr/src # patch -p < /path/to/patch # cd lib/libbz2 # make depend && make all install # cd ../../usr.bin/bzip2 # make depend && make all install 3) FreeBSD 4.4-RELEASE および 4.5-RELEASE システムの場合: 実験的なものですが、アップグレードパッケージが用意されています。 これはバイナリアップグレード機能の試験および、それに対する意見を 提供していただけるユーザ向けのものです。このパッケージは FreeBSD 4.4-RELEASE および FreeBSD 4.5-RELEASE システムにのみ インストール可能で、ソースへ修正パッチを適用することが 現実的でなかったり、そうすることがふさわしくないと考えられる システムでの利用を考慮したものです。 このアップグレードパッケージを利用する場合は、将来のセキュリティ勧告を より良いものにするため、(肯定的・否定的のいずれであっても) security-officer@FreeBSD.org までご意見をお寄せください。 インストール処理の途中で、アップグレードパッケージは 置き換えるファイルのバックアップコピーを作成します。 アップグレードパッケージが削除された時、このバックアップコピーは 再インストールされて、システムは修正パッチを適用する前の状態に戻ります。 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-02.25/security-patch-bzip2-02.25.tgz # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-02.25/security-patch-bzip2-02.25.tgz.asc PGP ユーティリティを使って PGP 署名を確認します。 # pkg_add security-patch-bzip2-02.25.tgz [ports の場合] 1) Ports Collection 全体をアップグレードし、bzip2 の port を再構築する。 2) 古い (訳注: bzip2 の) package をシステムから削除し、 修正日以降に作成された新しい package を以下の場所から 取得してインストールする。 [i386] ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/archivers/ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/archivers/ [alpha] 現時点では alpha アーキテクチャ用の package は自動生成されていません。 これは、構築のためのマシンリソースが不足しているためです。 注意: 新しい package が提供されるまで、数日かかるかも知れません。 バージョン番号は変更されていないので、package の作成日時を よく確認するようにお願いします。 3) bzip2 の新しい port スケルトンを以下の場所からダウンロードし、 それを使って port を再構築する。 http://www.freebsd.org/ports/ 4) 上記 (3) の操作を自動的に行なう portcheckout ユーティリティを使う。 portcheckout の port は /usr/ports/devel/portcheckout にあります。 また, portcheckout の package が以下の場所から入手可能です。 ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/Latest/portcheckout.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/Latest/portcheckout.tgz VI. 修正の詳細 - Correction details 次の表は、今回修正された FreeBSD に含まれる各ファイルのリビジョン番号です。 [Ports collection] パス名 リビジョン - ------------------------------------------------------------------------- ports/archivers/bzip2/Makefile 1.36 ports/archivers/bzip2/distinfo 1.10 ports/archivers/bzip2/pkg-descr 1.5 ports/archivers/bzip2/pkg-plist 1.14 - ------------------------------------------------------------------------- [ベースシステム] ブランチ パス名 リビジョン - ------------------------------------------------------------------------- RELENG_4 src/contrib/bzip2/CHANGES 1.1.1.1.2.2 src/contrib/bzip2/FREEBSD-upgrade 1.1.2.1 src/contrib/bzip2/LICENSE 1.1.1.1.2.2 src/contrib/bzip2/Makefile 1.1.1.1.2.2 src/contrib/bzip2/Makefile-libbz2_so 1.1.1.1.2.2 src/contrib/bzip2/README 1.1.1.1.2.2 src/contrib/bzip2/README.COMPILATION.PROBLEMS 1.1.1.1.2.2 src/contrib/bzip2/Y2K_INFO 1.1.1.1.2.1 src/contrib/bzip2/blocksort.c 1.1.1.1.2.2 src/contrib/bzip2/bzip2.1 1.1.1.1.2.2 src/contrib/bzip2/bzip2.c 1.1.1.1.2.2 src/contrib/bzip2/bzip2recover.c 1.1.1.1.2.2 src/contrib/bzip2/bzlib.c 1.1.1.1.2.2 src/contrib/bzip2/bzlib.h 1.1.1.1.2.2 src/contrib/bzip2/bzlib_private.h 1.1.1.1.2.2 src/contrib/bzip2/compress.c 1.1.1.1.2.2 src/contrib/bzip2/crctable.c 1.1.1.1.2.2 src/contrib/bzip2/decompress.c 1.1.1.1.2.2 src/contrib/bzip2/dlltest.c 1.1.1.1.2.2 src/contrib/bzip2/huffman.c 1.1.1.1.2.2 src/contrib/bzip2/libbz2.def 1.1.1.1.2.1 src/contrib/bzip2/makefile.msc 1.1.1.1.2.2 src/contrib/bzip2/manual.texi 1.1.1.1.2.2 src/contrib/bzip2/randtable.c 1.1.1.1.2.2 src/contrib/bzip2/sample1.bz2.uu 1.1.1.1.2.2 src/contrib/bzip2/sample1.ref.gz.uu 1.1.1.1.2.2 src/contrib/bzip2/sample2.bz2.uu 1.1.1.1.2.2 src/contrib/bzip2/sample2.ref.gz.uu 1.1.1.1.2.1 src/contrib/bzip2/sample3.bz2.uu 1.1.1.1.2.2 src/contrib/bzip2/sample3.ref.gz.uu 1.1.1.1.2.1 src/contrib/bzip2/spewG.c 1.1.1.1.2.1 src/contrib/bzip2/unzcrash.c 1.1.1.1.2.1 src/contrib/bzip2/words0 1.1.1.1.2.1 src/contrib/bzip2/words1 1.1.1.1.2.1 src/contrib/bzip2/words2 1.1.1.1.2.1 src/contrib/bzip2/words3 1.1.1.1.2.2 RELENG_4_5 src/sys/conf/newvers.sh 1.44.2.20.2.2 src/contrib/bzip2/CHANGES 1.1.1.1.2.1.4.1 src/contrib/bzip2/FREEBSD-upgrade 1.1.4.1 src/contrib/bzip2/LICENSE 1.1.1.1.2.1.4.1 src/contrib/bzip2/Makefile 1.1.1.1.2.1.4.1 src/contrib/bzip2/Makefile-libbz2_so 1.1.1.1.2.1.4.1 src/contrib/bzip2/README 1.1.1.1.2.1.4.1 src/contrib/bzip2/README.COMPILATION.PROBLEMS 1.1.1.1.2.1.4.1 src/contrib/bzip2/Y2K_INFO 1.1.1.1.2.1 src/contrib/bzip2/blocksort.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/bzip2.1 1.1.1.1.2.1.4.1 src/contrib/bzip2/bzip2.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/bzip2recover.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/bzlib.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/bzlib.h 1.1.1.1.2.1.4.1 src/contrib/bzip2/bzlib_private.h 1.1.1.1.2.1.4.1 src/contrib/bzip2/compress.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/crctable.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/decompress.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/dlltest.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/huffman.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/libbz2.def 1.1.1.1.2.1 src/contrib/bzip2/makefile.msc 1.1.1.1.2.1.4.1 src/contrib/bzip2/manual.texi 1.1.1.1.2.1.4.1 src/contrib/bzip2/randtable.c 1.1.1.1.2.1.4.1 src/contrib/bzip2/sample1.bz2.uu 1.1.1.1.2.1.4.1 src/contrib/bzip2/sample1.ref.gz.uu 1.1.1.1.2.1.4.1 src/contrib/bzip2/sample2.bz2.uu 1.1.1.1.2.1.4.1 src/contrib/bzip2/sample2.ref.gz.uu 1.1.1.1.2.1 src/contrib/bzip2/sample3.bz2.uu 1.1.1.1.2.1.4.1 src/contrib/bzip2/sample3.ref.gz.uu 1.1.1.1.2.1 src/contrib/bzip2/spewG.c 1.1.1.1.2.1 src/contrib/bzip2/unzcrash.c 1.1.1.1.2.1 src/contrib/bzip2/words0 1.1.1.1.2.1 src/contrib/bzip2/words1 1.1.1.1.2.1 src/contrib/bzip2/words2 1.1.1.1.2.1 src/contrib/bzip2/words3 1.1.1.1.2.1.4.1 RELENG_4_4 src/sys/conf/newvers.sh 1.44.2.17.2.7 src/contrib/bzip2/CHANGES 1.1.1.1.2.1.2.1 src/contrib/bzip2/FREEBSD-upgrade 1.1.6.1 src/contrib/bzip2/LICENSE 1.1.1.1.2.1.2.1 src/contrib/bzip2/Makefile 1.1.1.1.2.1.2.1 src/contrib/bzip2/Makefile-libbz2_so 1.1.1.1.2.1.2.1 src/contrib/bzip2/README 1.1.1.1.2.1.2.1 src/contrib/bzip2/README.COMPILATION.PROBLEMS 1.1.1.1.2.1.2.1 src/contrib/bzip2/Y2K_INFO 1.1.1.1.2.1 src/contrib/bzip2/blocksort.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/bzip2.1 1.1.1.1.2.1.2.1 src/contrib/bzip2/bzip2.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/bzip2recover.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/bzlib.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/bzlib.h 1.1.1.1.2.1.2.1 src/contrib/bzip2/bzlib_private.h 1.1.1.1.2.1.2.1 src/contrib/bzip2/compress.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/crctable.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/decompress.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/dlltest.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/huffman.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/libbz2.def 1.1.1.1.2.1 src/contrib/bzip2/makefile.msc 1.1.1.1.2.1.2.1 src/contrib/bzip2/manual.texi 1.1.1.1.2.1.2.1 src/contrib/bzip2/randtable.c 1.1.1.1.2.1.2.1 src/contrib/bzip2/sample1.bz2.uu 1.1.1.1.2.1.2.1 src/contrib/bzip2/sample1.ref.gz.uu 1.1.1.1.2.1.2.1 src/contrib/bzip2/sample2.bz2.uu 1.1.1.1.2.1.2.1 src/contrib/bzip2/sample2.ref.gz.uu 1.1.1.1.2.1 src/contrib/bzip2/sample3.bz2.uu 1.1.1.1.2.1.2.1 src/contrib/bzip2/sample3.ref.gz.uu 1.1.1.1.2.1 src/contrib/bzip2/spewG.c 1.1.1.1.2.1 src/contrib/bzip2/unzcrash.c 1.1.1.1.2.1 src/contrib/bzip2/words0 1.1.1.1.2.1 src/contrib/bzip2/words1 1.1.1.1.2.1 src/contrib/bzip2/words2 1.1.1.1.2.1 src/contrib/bzip2/words3 1.1.1.1.2.1.2.1 - ------------------------------------------------------------------------- src/contrib/bzip2 に含まれるファイルすべてには、上表のように 各ブランチに対応したリビジョン番号が付けられています。 ただし、ソースコードにはリビジョン番号が書かれていません。 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:25,v 1.5 2002/07/26 04:19:35 hrs Exp $