[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NetBSD Security Advisory 2003-011: off-by-one error inrealpath(3)
- Subject: Re: NetBSD Security Advisory 2003-011: off-by-one error inrealpath(3)
- From: Hiroki Sato <hrs@eos.ocn.ne.jp>
- To: www-changes-ja@jp.netbsd.org
- Date: Sun, 10 Aug 2003 19:13:27 +0900 (JST)
- Message-Id: <20030810.191327.131943587.hrs@eos.ocn.ne.jp>
- In-Reply-To: <20030804181701.GH21067@vex>
- References: <20030804181701.GH21067@vex>
- Delivered-To: mailing list www-changes-ja@jp.netbsd.org
- Mailing-List: contact www-changes-ja-help@jp.netbsd.org; run by ezmlm-idx
佐藤@東京理科大学です。
ごめんなさい、先週はちょっと忙しくて
手が回ってませんでした。
2003-010 と 2003-011 です。
-011 は rev 1.10 ベースですが、いくつか typo が
あるようなので、so@ に問い合わせ中です。
--
| 佐藤 広生@東京理科大学 <hrs@eos.ocn.ne.jp>
NetBSD セキュリティー勧告 日本語訳
=============================================================================
NetBSD Security Advisory 2003-010 (2003/08/04)
* remote panic in OSI networking code
=============================================================================
このメールは, netbsd-announce に流れた
Subject: NetBSD Security Advisory 2003-010: remote panic in OSI networking code
From: NetBSD Security Officer <security-officer@NetBSD.org>
Date: Mon, 4 Aug 2003 14:12:47 -0400
Message-Id: <20030804181247.GA21067@vex>
を、www.NetBSD.ORG 翻訳プロジェクトが日本語訳したものです。
原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。
修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の
チェックを行なうには、原文を参照してください。
------------------------------- ここから ------------------------------------
NetBSD Security Advisory 2003-010
=================================
トピック: OSI ネットワークコードを使ってリモートからパニックを
引き起こすことができる問題
(remote panic in OSI networking code)
バージョン: NetBSD-current: 2003 年 5 月 26 日より前のソース
NetBSD 1.6.1: 影響あり
NetBSD 1.6: 影響あり
NetBSD-1.5.3: 影響あり
NetBSD-1.5.2: 影響あり
NetBSD-1.5.1: 影響あり
NetBSD-1.5: 影響あり
影響範囲: OSI ネットワークに接続されているシステムをリモートから
クラッシュさせることが可能。
(remote system crash possible on OSI connected systems)
修正日: NetBSD-current: 2003 年 5 月 26 日
NetBSD-1.6 branch: 2003 年 5 月 26 日 (1.6.2 は修正ずみ)
NetBSD-1.5 branch: 2003 年 5 月 28 日
概要 - Abstract
===============
特殊な細工を施した OSI ネットワークパケットを送ることで、OSI ネットワークに
接続されたシステムをリモートからクラッシュさせることが可能です。
技術的な詳細 - Technical Details
================================
OSI ネットワークカーネル (sys/netiso) には、エラーが発生した際に、
OSI パケットの送出元にエラーを通知する関数が含まれています。この関数は
パケットヘッダー用の mbuf を用意するのですが、それを BSD のネットワーク
スタックに必要な "PKTHDR" mbuf を使うように変換する処理を、ずっと以前から
行なっていませんでした。
訳注: パケットヘッダー情報は通常、mbuf チェーンの先頭にある mbuf の
m_flags に M_PKTHDR を設定し、その mbuf に pkthdr 構造体という形で
格納されます。
そうやって用意されたパケットをネットワークドライバが (mbuf チェーンの
先頭にある、pkthdr フィールドを含まない mbuf の不正な情報を使って)
送ろうとすると、pkthdr フィールドが存在しないことに起因する
パニック (カーネルが "options DEBUG" ありで構築されていた場合) や、
さまざまな形でのクラッシュが発生します。
回避方法と解決策 - Solutions and Workarounds
============================================
システムに弱点が存在するか確かめるには、次のようにします。
OSI は、あまり利用されないネットワークスタックです。したがって、
この勧告の問題はほとんどの NetBSD ユーザーには影響ないでしょう。
'ifconfig -a | grep iso' を実行した時に、iso アドレスが
設定されているインターフェースが表示されなければ、システムに弱点はありません。
勧告の冒頭に書かれている影響のあるバージョンのカーネルで、OSI アドレスを
使用するように設定されているものには、弱点が存在します。
回避方法: OSI アドレスを設定しない、設定されている OSI アドレスを無効にする、
あるいは ``options OSI'' を付けないで構築したカーネルで起動してください。
いずれの方法でも、OSI を使った通信を無効にすることが可能です。
次に示す手順は、ソースツリーを更新してカーネルを再構築し、
新しいバージョンのカーネルをインストールすることで、カーネルを
アップグレードする方法を説明したものです。
* NetBSD-current:
2003 年 5 月 25 日より前の NetBSD-current は、
2003 年 5 月 26 日、もしくはそれ以降の NetBSD-current に
アップグレードする必要があります。
CVS ブランチ netbsd-current (別名 HEAD) において
更新が必要なファイルは、次のとおりです。
sys/netiso/clnp_er.c
CVS を使ってファイルを更新し、カーネルを
再構築・再インストールするには、次のコマンドを実行してください。
% cd src
% cvs update -d -P sys/netiso
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
* NetBSD 1.6, 1.6.1:
NetBSD 1.6.1 のバイナリー配布物には、このセキュリティー上の弱点が
含まれています。
2003 年 5 月 25 日より前の NetBSD 1.6 のソースは、
2003 年 5 月 26 日、もしくはそれ以降の NetBSD 1.6 のソースに
アップグレードする必要があります。
NetBSD 1.6.2 には、この弱点に対する修正が含まれる予定です。
CVS ブランチ netbsd-1-6 において更新が必要なファイルは、
次のとおりです。
sys/netiso/clnp_er.c
CVS を使ってファイルを更新し、カーネルを
再構築・再インストールするには、次のコマンドを実行してください。
% cd src
% cvs update -d -P -r netbsd-1-6 sys/netiso
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
もしくは、次の修正パッチ (オフセット誤差が表示されるかも知れません) を
適用するという方法も有効です。
ftp://ftp.NetBSD.org/pub/NetBSD/security/patches/SA2003-010-osi.patch
修正パッチを適用するには、次のようにカーネルを
再構築・再インストールして、再起動してください。
# cd src
# patch < /path/to/SA2003-010-osi.patch
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
* NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3:
NetBSD 1.5.3 のバイナリー配布物には、このセキュリティー上の弱点が
含まれています。
2003 年 5 月 27 日より前の NetBSD-1.5、NetBSD-1.5.1、
NetBSD-1.5.2、NetBSD-1.5.3 のいずれかのソースを
使っているシステムは、2003 年 5 月 28 日、もしくはそれ以降の
NetBSD-1.5.* のソースにアップグレードする必要があります。
CVS ブランチ netbsd-1-5 において更新が必要なファイルは、
次のとおりです。
sys/netiso/clnp_er.c
CVS を使ってファイルを更新し、カーネルを
再構築・再インストールするには、次のコマンドを実行してください。
% cd src
% cvs update -d -P -r netbsd-1-5 sys/netiso
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
もしくは、次の修正パッチ (オフセット誤差が表示されるかも知れません) を
適用するという方法も有効です。
ftp://ftp.NetBSD.org/pub/NetBSD/security/patches/SA2003-010-osi.patch
修正パッチを適用するには、次のようにカーネルを
再構築・再インストールして、再起動してください。
# cd src
# patch < /path/to/SA2003-010-osi.patch
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
謝辞 - Thanks To
================
Ignatios Souvatzis 氏
改訂履歴 - Revision History
===========================
2003-08-04 初版公開
詳細と参考資料 - More Information
=================================
新しい情報が判明した場合、セキュリティー勧告は更新されることがあります。
PGP 署名されたこの勧告の最新版は、次の場所から入手できます。
ftp://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2003-010.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-010.txt,v 1.8 2003/08/04 16:02:47 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.10 に基づいています)。
原文は 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/mountd
この後、この新しい 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 バイナリーパッチの追加
詳細と参考資料 - 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.10 2003/08/08 09:29:01 itojun Exp $