[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NetBSD Security Advisory 2003-004: Format string vulnerabilityin zlib gzprintf()



NetBSD セキュリティー勧告 日本語版
=============================================================================
NetBSD Security Advisory 2003-004 (2003/03/26)
 * Format string vulnerability in zlib gzprintf()
=============================================================================

 このメールは, netbsd-announce に流れた

  Subject: NetBSD Security Advisory 2003-004: Format string vulnerability in zlib gzprintf()
  From: NetBSD Security Officer <security-officer@netbsd.org>
  Date: Wed, 26 Mar 2003 13:52:11 -0500
  Message-Id: <20030326185211.GX14884@vex>

 を、www.NetBSD.ORG 翻訳プロジェクトが日本語訳したものです
 (日本語訳は NetBSD-SA2003-004.txt,v 1.6 に基づいています)。

 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。
 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の
 チェックを行なうには。原文を参照してください。

------------------------------- ここから ------------------------------------

		 NetBSD Security Advisory 2003-004
		 =================================

トピック:	zlib の gzprintf() の書式文字列におけるセキュリティー上の弱点
		(Format string vulnerability in zlib gzprintf())

バージョン:	NetBSD-current:	2003 年 3 月 5 日より前のソース
		NetBSD 1.6:	影響あり
		NetBSD-1.5.3:	影響あり
		NetBSD-1.5.2:	影響あり
		NetBSD-1.5.1:	影響あり
		NetBSD-1.5:	影響あり
		pkgsrc:		zlib-1.1.4nb1 より前の
				devel/zlib package は影響あり

影響範囲:	gzprintf() 呼び出しているアプリケーションの権限を
		不正に獲得できる (ただし、そのようなアプリケーションは
		ベースシステムに含まれていない)。
		(Privilege escalation in applications call using gzprintf().
		(There are none in the base system.))

修正日:		NetBSD-current:		2003 年 3 月 6 日
		NetBSD-1.6 ブランチ:	2003 年 3 月 6 日 (1.6.1 は修正ずみ)
		NetBSD-1.5 ブランチ:	2003 年 3 月 6 日
		pkgsrc devel/zlib:	zlib-1.1.4nb1 で修正


概要 - Abstract
===============

zlib の gzprintf 関数は、ユーザーから渡されたデータの境界チェックを
行なっていません。この関数がアプリケーション中でどう使われているかにも
よりますが、悪意を持って作成されたデーターを渡すことで
バッファーオーバーフローを発生させ、そのアプリケーションを
実行しているユーザーの権限で、任意のコードを実行できる可能性があります。

NetBSD システムに含まれるプログラムに、gzprintf 関数を使っているものは
含まれていません。しかし、pkgsrc を含むサードパーティー製ソフトウェアの
中には、この関数を使っているものが存在するかも知れません。


技術的な詳細 - Technical Details
================================

zlib を使っているプログラムは数多くあります。しかし、その大部分は
復元 (decompression) 機能のみを使っています。gzprintf 関数は圧縮機能を
持った printf 関数であり、これが使われることは比較的稀です。

また、zlib がネットワークで使用される場合は、一般にローカルホストから
ネットワーク経由でデーターを圧縮して送る目的で使われます。したがって、
このバグをリモートから悪用可能なアプリケーションは、ほとんどないでしょう。

ただし、ローカルから不正に高い権限を得るためにこれが利用される可能性は
否定できません。NetBSD のベースシステムに gzprint 関数を使っている
バイナリーは含まれていませんが、アプリケーションの権限を不正に得るために、
誰かがこの弱点を持ったアプリケーションを自分のユーザーの権限で
実行することは、十分に考えられることです。

NetBSD セキュリティーオフィサーは、弱点を持った pkg のリストを作成するために
pkgsrc コードの監査を行なっています。その成果物は audit-packages
データーベースに記録され、このセキュリティー勧告にも反映される予定です。

また、zlib を提供していないオペレーティングシステムのために、
サードパーティー製の配布ファイルの多くが、それぞれ独自に zlib を
含んでいることに注意する必要があるでしょう。NetBSD pkgsrc では、
そのようなアプリケーションに configure スクリプトが存在する場合、
それが NetBSD に含まれている修正ずみの zlib を正しく検出するように
してあります。
 
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0107


回避方法と解決策 - Solutions and Workarounds
============================================

次に示す手順は、ソースツリーを更新して再構築し、新しいバージョンの
zlib をインストールすることで、zlib ライブラリーをアップグレード
する方法を説明したものです。

* NetBSD-current:

	2003 年 3 月 5 日より前の NetBSD-current は、
	2003 年 3 月 6 日、もしくはそれ以降の NetBSD-current に
	アップグレードする必要があります。

	CVS ブランチ netbsd-current (別名 HEAD) において
	更新が必要なファイルは、次のとおりです。
		lib/libz/gzio.c

	CVS を使ってファイルを更新し、libz を
	再構築・再インストールするには、次のコマンドを実行してください。

		# cd src
		# cvs update -d -P lib/libz/gzio.c
		# cd lib/libz

		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install


* NetBSD 1.6:

	NetBSD 1.6 のバイナリー配布物には、このセキュリティー上の弱点が
	含まれています。

	2003 年 3 月 5 日より前の NetBSD 1.6 は、
	2003 年 3 月 6 日、もしくはそれ以降の NetBSD 1.6 に
	アップグレードする必要があります。

	NetBSD 1.6.1 には、この弱点に対する修正が含まれる予定です。

	CVS ブランチ netbsd-1-6 において
	更新が必要なファイルは、次のとおりです。
		lib/libz/gzio.c

	CVS を使ってファイルを更新し、libz を
	再構築・再インストールするには、次のコマンドを実行してください。

		# cd src
		# cvs update -d -P -r netbsd-1-6 lib/libz/gzio.c
		# cd lib/libz

		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install


	もしくは、次の修正パッチを適用します (オフセット誤差があるかも知れません)。
		ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2003-004-zlib-1.6.patch

	修正パッチを適用して libz を再構築・再インストールするには、
	次のコマンドを実行してください。

		# cd src/lib/libz
		# patch < /path/to/SA2003-004-zlib-1.6.patch

		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install


* NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3:

	NetBSD 1.5.3 のバイナリー配布物には、このセキュリティー上の弱点が
	含まれています。

	2003 年 3 月 5 日より前の NetBSD-1.5, 1.5.1, 1.5.2, 1.5.3 は、
	2003 年 3 月 6 日、もしくはそれ以降の NetBSD-1.5.* に
	アップグレードする必要があります。

	CVS ブランチ netbsd-1-5 において
	更新が必要なファイルは、次のとおりです。
		lib/libz/gzio.c

	CVS を使ってファイルを更新し、再構築・再インストールするには、
	次のコマンドを実行してください。

		# cd src
		# cvs update -d -P -r netbsd-1-5 lib/libz/gzio.c
		# cd lib/libz

		# make cleandir dependall
		# make install


	もしくは、次の修正パッチを適用します (オフセット誤差があるかも知れません)。
		ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2003-004-zlib-1.5.patch

	修正パッチを適用して libz を再構築・再インストールするには、
	次のコマンドを実行してください。

		# cd src/lib/libz
		# patch < /path/to/SA2003-004-zlib-1.5.patch

		# make cleandir dependall
		# make install


謝辞 - Thanks To
================

Bill Squier 氏: 修正パッチを作成してくれました。 
Lubomir Sedlacik 氏: この弱点が問題であることを指摘してくれました。


改訂履歴 - Revision History
===========================

	2003-03-26	初版公開
	2003-03-27	Thomas Lotterer 氏の指摘により CVE URL を修正 


詳細と参考資料 - More Information
=================================

新しい情報が判明した場合、セキュリティー勧告は更新されることがあります。
PGP 署名されたこの勧告の最新版は、次の場所から入手できます。
  ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2003-004.txt.asc

NetBSD および NetBSD のセキュリティーに関する情報は、次の場所から入手できます。
http://www.NetBSD.ORG/
http://www.NetBSD.ORG/Security/


Copyright 2003, The NetBSD Foundation, Inc.  All Rights Reserved.
Redistribution permitted only in full, unmodified form.

$NetBSD: NetBSD-SA2003-004.txt,v 1.6 2003/03/27 15:17:13 david Exp $