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

Re: NetBSD Security Advisory 2003-011: off-by-one error inrealpath(3)



佐藤@東京理科大学です。

Yuji Yamano <yyamano@kt.rim.or.jp> wrote
  in <20030812.005131.50178858.yyamano@kt.rim.or.jp>:

yyamano> >  -011 は rev 1.10 ベースですが、いくつか typo が
yyamano> >  あるようなので、so@ に問い合わせ中です。
yyamano> 
yyamano> 1.12 までいってしまったようですが、それを待ったほうがいいですか?

 1.12 までの変更を merge しました。差分と全文を添付します。

 まだ 1.6.1 でうまく行かないという報告があるみたいなのですが、
 とりあえずアナウンスしてしまっていいと思います。

--
| 佐藤 広生@東京理科大学 <hrs@eos.ocn.ne.jp>
Index: 2003-011
===================================================================
RCS file: /home/cvs/private/hrs/announce-jp/NetBSD-SA/2003-011,v
retrieving revision 1.4
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.4 2003-011
--- 2003-011	10 Aug 2003 10:05:02 -0000	1.4
+++ 2003-011	11 Aug 2003 15:55:08 -0000
@@ -12,7 +12,7 @@
   Message-Id: <20030804181630.GG21067@vex>
 
  を、www.NetBSD.ORG 翻訳プロジェクトが日本語訳したものです。
- (日本語訳は NetBSD-SA2003-011.txt,v 1.10 に基づいています)。
+ (日本語訳は NetBSD-SA2003-011.txt,v 1.12 に基づいています)。
 
  原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。
  修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の
@@ -205,7 +205,7 @@
 		/usr/lib/libc_p.a
 		/usr/lib/libc_pic.a
 		/sbin/mount
-		/sbin/mountd
+		/sbin/umount
 
 	この後、この新しい libc を使うようにシステムを再起動するか、
 	影響のあるデーモンを再起動します。その場合も、古い libc と
@@ -282,6 +282,9 @@
 
 	2003-08-04	初版公開
 	2003-08-06	バイナリーパッチの追加
+	2003-08-10	1.5 用の修正手順にあった誤記の訂正
+	2003-08-10	バイナリーパッチに含まれているのは /sbin/mountd
+			ではなく /sbin/umount である点を訂正
 
 
 詳細と参考資料 - More Information
@@ -299,6 +302,4 @@
 Copyright 2003, The NetBSD Foundation, Inc.  All Rights Reserved.
 Redistribution permitted only in full, unmodified form.
 
-$NetBSD: NetBSD-SA2003-011.txt,v 1.10 2003/08/08 09:29:01 itojun Exp $
+$NetBSD: NetBSD-SA2003-011.txt,v 1.12 2003/08/11 03:55:53 david Exp $
NetBSD セキュリティー勧告 日本語訳
=============================================================================
NetBSD Security Advisory 2003-011 (2003/08/04)
 * off-by-one error in realpath(3)
=============================================================================

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

  Subject: NetBSD Security Advisory 2003-011: off-by-one error in realpath(3)
  From: NetBSD Security Officer <security-officer@NetBSD.org>
  Date: Mon, 4 Aug 2003 14:16:30 -0400
  Message-Id: <20030804181630.GG21067@vex>

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

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


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



		 NetBSD Security Advisory 2003-011
		 =================================

トピック:	realpath(3) における「一つ違い (off-by-one)」エラー
		(off-by-one error in realpath(3))

バージョン:	NetBSD-current:	2003 年 8 月 4 日より前のソース
		NetBSD 1.6.1:	影響あり
		NetBSD 1.6:	影響あり
		NetBSD-1.5.3:	影響あり
		NetBSD-1.5.2:	影響あり
		NetBSD-1.5.1:	影響あり
		NetBSD-1.5:	影響あり

影響範囲:	リモートからのバッファーオーバーランおよび、
		root 権限の不正使用の可能性
		(Possible remote buffer overrun/root compromise)

修正日:		NetBSD-current:		2003 年 8 月 4 日
		NetBSD-1.6 branch:	2003 年 8 月 5 日 (1.6.2 は修正ずみ)
		NetBSD-1.5 branch:	2003 年 8 月 6 日


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

ライブラリー関数 realpath(3) に、1 バイトのバッファーオーバーラン
を引き起こす可能性のある、文字列操作の誤りが含まれていました。
realpath(3) は ftpd(8) などの重要性の高いネットワークデーモンで
使われているため、この弱点はリモートから悪用できる危険性があります。

注意: wu-ftpd サーバー (NetBSD のベースシステムには含まれていません) の
      配布物にある realpath(3) に由来する関数には、同じエラーが
      含まれています。この問題に関する情報は、ここ数日の間に
      公開されており、wu-ftpd に対する悪用コードも公開されています。
      おそらく、他のサービス用の悪用コードも存在するでしょう。
      もし影響を受けるサービスを提供しているなら、至急修正パッチを
      適用することをおすすめします。


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

http://www.kb.cert.org/vuls/id/743092

NetBSD ベースシステムにおいて、realpath(3) を使っているバイナリーは
次のとおりです。

/bin/systrace
/usr/libexec/ftpd (*)
/sbin/mount
/sbin/umount
/usr/sbin/mountd (*)
/usr/bin/ssh
/usr/sbin/sshd (*)
/usr/libexec/sftp-server (*)
/usr/sbin/bootpd (*)

(*) という印のあるバイナリーはネットワークインターフェースを
listen するため、弱点をリモートから悪用することが可能です。


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

この弱点を修正するには、libc をアップグレードする必要があります。

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

ただし、次にあげるような静的にリンクされたバイナリーもすべて、
再構築しなければならないことに注意してください。

- - 1.5, 1.6 ベースのシステムにおける、/sbin および /bin 以下にあるバイナリー
- - NetBSD-current システムにおける、/rescue 以下にあるバイナリー
- - pkgsrc を使って構築した、静的にリンクされたバイナリー

また、libc をアップグレードしてからマシンを再起動しない場合は、
実行中のデーモンを再起動する必要があります。

* NetBSD-current:

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

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

	CVS を使ってファイルを更新し、libc と rescue を
	再構築・再インストールするには、次のコマンドを実行してください。
		# cd src
		# cvs update -d -P lib/libc/gen/getcwd.c

		# cd lib/libc
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../../rescue
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		(この後システムを再起動するか、影響のあるデーモンを再起動する)

* NetBSD 1.6, 1.6.1:

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

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

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

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

	CVS を使ってファイルを更新し、libc と静的リンクされたバイナリーを
	再構築・再インストールするには、次のコマンドを実行してください。

		# cd src
		# cvs update -d -P -r netbsd-1-6 lib/libc/gen/getcwd.c

		# cd lib/libc
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../../sbin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../bin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		(この後システムを再起動するか、影響のあるデーモンを再起動する)

	もしくは、次の修正パッチ (オフセット誤差が表示されるかも知れません) を
	適用するという方法も有効です。
		ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2003-011-realpath.patch

	修正パッチを適用するには、次のように libc と静的リンクされたバイナリーを
	再構築・再インストールして、再起動してください。

		# cd src
		# patch < /path/to/SA2003-011-realpath.patch

		# cd lib/libc
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../../sbin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../bin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		(この後システムを再起動するか、影響のあるデーモンを再起動する)


	* バイナリーパッチ

	バイナリーパッチを適用するには、次の手順を行ないます。
	ARCH の部分は、あなたが実行している NetBSD のアーキテクチャー
	(たとえば i386 など) に置き換えてください。

	ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2003-011-realpath/netbsd-1-6/ARCH-realpath.tgz
	cd / && tar xzvpf /path/to/ARCH-realpath.tgz

	この tar ファイルは、次のファイルの新しいものを展開します。
		/usr/lib/libc.so.12.83.2
		/usr/lib/libc.so.12 (libc.so.12.83.2 へのシンボリックリンク)
		/usr/lib/libc.a
		/usr/lib/libc_p.a
		/usr/lib/libc_pic.a
		/sbin/mount
		/sbin/umount

	この後、この新しい libc を使うようにシステムを再起動するか、
	影響のあるデーモンを再起動します。その場合も、古い libc と
	静的リンクされているバイナリーをすべて再構築しなければならない
	ことに注意してください。
	

* NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3:

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

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

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

	CVS を使ってファイルを更新し、libc と静的リンクされたバイナリーを
	再構築・再インストールするには、次のコマンドを実行してください。

		# cd src
		# cvs update -d -P -r netbsd-1-5 lib/libc/gen/getcwd.c

		# cd lib/libc
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../../sbin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../bin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		(この後システムを再起動するか、影響のあるデーモンを再起動する)

	もしくは、次の修正パッチ (オフセット誤差が表示されるかも知れません) を
	適用するという方法も有効です。
		ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2003-011-realpath.patch

	修正パッチを適用するには、次のように libc と静的リンクされたバイナリーを
	再構築・再インストールして、再起動してください。

		# cd src
		# patch < /path/to/SA2003-011-realpath.patch

		# cd lib/libc
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../../sbin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		# cd ../bin
		# make USETOOLS=no cleandir dependall
		# make USETOOLS=no install

		(この後システムを再起動するか、影響のあるデーモンを再起動する)


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

CERT


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

	2003-08-04	初版公開
	2003-08-06	バイナリーパッチの追加
	2003-08-10	1.5 用の修正手順にあった誤記の訂正
	2003-08-10	バイナリーパッチに含まれているのは /sbin/mountd
			ではなく /sbin/umount である点を訂正


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

新しい情報が判明した場合、セキュリティー勧告は更新されることがあります。
PGP 署名されたこの勧告の最新版は、次の場所から入手できます。
  ftp://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2003-011.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-011.txt,v 1.12 2003/08/11 03:55:53 david Exp $