NetBSD Security Advisory 2003-008 ================================= トピック: xdrmem_getbytes の不正な長さチェックの問題 (faulty length checks in xdrmem_getbytes) バージョン: NetBSD-current: 2003 年 3 月 21 日より前のソース NetBSD-1.6.1: 影響なし NetBSD-1.6: 影響あり NetBSD-1.5.3: 影響あり NetBSD-1.5.2: 影響あり NetBSD-1.5.1: 影響あり NetBSD-1.5: 影響あり NetBSD-1.4*: 影響あり 影響範囲: バッファーオーバランが発生する可能性がある。 (buffer overrun) 修正日: NetBSD-current: 2003 年 3 月 21 日 NetBSD-1.6 ブランチ: 2003 年 3 月 21 日 NetBSD-1.5 ブランチ: 2003 年 3 月 28 日 概要 - Abstract =============== libc の xdrmem_*() ルーチンは、ローカルバッファーのメモリー割り当てに 使われている整数においてオーバーフローが発生する疑いがあります。 この関数を使用するプロセスを悪用して、コードを実行したり、 弱点を持ったプロセス内で利用されているプライベートメモリー空間を、 関数の呼び出し元に返すことができる可能性があります。 技術的な詳細 - Technical Details ================================ 次の URL には、ここで説明していないセキュリティー上の弱点に関する記述も 含まれています。NetBSD はずっと以前にデーター型の定義を厳密なものに 変更したため、そのセキュリティー上の弱点の影響はありません。 今回の問題は、次の URL で説明されています。 http://www.cert.org/advisories/CA-2003-10.html http://www.securityfocus.com/archive/1/315641 http://web.mit.edu/kerberos/www/advisories/MITKRB5-SA-2003-003-xdr.txt 回避方法と解決策 - Solutions and Workarounds ============================================ 次に示す手順は、ソースツリーを更新して再構築し、新しいバージョンの libc をインストールすることで、libc バイナリーをアップグレード する方法を説明したものです。 アップグレード後には、実行中の libc rpc ライブラリーを使うプログラムを 再起動するのを忘れないようにしてください。 もし、弱点を持った libc と静的にリンクされ、rpc を利用する バイナリーがある場合は、それらを再構築する必要があります。 * NetBSD-current: 2003 年 3 月 20 日より前の NetBSD-current は、 2003 年 3 月 20 日、もしくはそれ以降の NetBSD-current に アップグレードする必要があります。 CVS ブランチ netbsd-current (別名 HEAD) において 更新が必要なディレクトリは、次のとおりです。 lib/libc/rpc include/rpc CVS を使ってファイルを更新し、libc を 再構築・再インストールするには、次のコマンドを実行してください。 # cd src # cvs update -d -P lib/libc/rpc # cvs update -d -P include/rpc # cd lib/libc # make USETOOLS=no cleandir dependall includes # make USETOOLS=no install * NetBSD 1.6: NetBSD 1.6 のバイナリー配布物には、このセキュリティー上の弱点が 含まれています。 ソースを使った部分アップグレードを行なう場合は、 2003 年 3 月 21 日、もしくはそれ以降の NetBSD 1.6 ブランチの ソースを使う必要があります。 CVS ブランチ netbsd-1-6 において 更新が必要なディレクトリは、次のとおりです。 lib/libc/rpc include/rpc CVS を使ってファイルを更新し、libc を 再構築・再インストールするには、次のコマンドを実行してください。 # cd src # cvs update -d -P -r netbsd-1-6 lib/libc/rpc # cvs update -d -P -r netbsd-1-6 include/rpc # cvs update -d -P -r netbsd-1-6 lib/libc/include/namespace.h # cd include # make includes # cd ../lib/libc # make USETOOLS=no cleandir dependall includes # make USETOOLS=no install * NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3: NetBSD 1.5.3 のバイナリー配布物には、このセキュリティー上の弱点が 含まれています。 ** 注意: 改訂前の勧告では、「2003 年 03 月 20 日に修正された」という 誤った情報が書かれていました。 2003 年 3 月 28 日より前の NetBSD-1.5.x ブランチのソースを 使っているシステムは、2003 年 3 月 28 日、もしくはそれ以降の NetBSD-1.5 ブランチのソースにアップグレードする必要があります。 CVS ブランチ netbsd-1-5 において 更新が必要なディレクトリは、次のとおりです。 lib/libc/rpc include/rpc CVS を使ってファイルを更新し、libc を 再構築・再インストールするには、次のコマンドを実行してください。 # cd src # cvs update -d -P -r netbsd-1-5 lib/libc/rpc # cvs update -d -P -r netbsd-1-5 include/rpc # cvs update -d -P -r netbsd-1-5 lib/libc/include/namespace.h # cd include # make includes # cd ../lib/libc # make cleandir dependall includes # make install 謝辞 - Thanks To ================ eEye および CERT: この弱点が問題であることを指摘してくれました。 Christos Zoulas 氏: 修正パッチを作成してくれました。 Miroslav Urbanek 氏: 修正手順の誤りを指摘してくれました。 改訂履歴 - Revision History =========================== 2003-03-26 初版公開 2003-03-27 1-5 ブランチの修正情報を追加 1-5 の修正パッチ適用日付を修正 2003-03-27 rpc.h を修正するため、include/rpc の更新が 必要であることを示す記述を追加 2003-04-07 1-5 ブランチの修正手順を更新 詳細と参考資料 - More Information ================================= PGP 署名されたこの勧告の最新版は、次の場所から入手できます。 ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2003-008.txt.asc NetBSD および、NetBSD のセキュリティーに関する情報は、次の場所から入手できます。 http://www.NetBSD.ORG/ http://www.NetBSD.ORG/Security/ Copyright 2003, The NetBSD Foundation, Inc. All Rights Reserved. $NetBSD: NetBSD-SA2003-008.txt.asc,v 1.5 2003/04/27 16:31:15 yyamano Exp $ $Id: NetBSD-SA2003-008.txt.asc,v 1.5 2003/04/27 16:31:15 yyamano Exp $