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.asc,v 1.2 2003/08/11 16:23:42 yyamano Exp $ $Id: NetBSD-SA2003-010.txt.asc,v 1.2 2003/08/11 16:23:42 yyamano Exp $