概要
リモート SuSE 10 ホストにセキュリティ関連のパッチがありません。
説明
以下の複数のセキュリティ問題が修正されました。
- 様々な LD_ 環境変数の $ORIGIN 特別値のデコーディングによって、ローカルの攻撃者が setuid root プログラムや権限昇格などによりコードを実行できるようになります。この問題は、それぞれのコードが実行されるまでは、アサーショントリガーとしての SUSE には影響しません。それにもかかわらず、バグは修正されました。
(CVE-2010-3847)
setuid root の実行中に LD_AUDIT 環境が変更されることはなく、標準システムのライブラリパスから共有ライブラリをロードできました。これが、ローカルの攻撃者に利用されて、 setuid root プログラムにコードが送りこまれ、権限昇格につながることがあります。(CVE-2010-3856)
- ld.so --verify モードでの任意のコードの実行の原因となる整数オーバーフローが、特別に細工されたバイナリによって誘発される可能性があります。(CVE-2010-0830)
- addmntent() 関数が改行文字を適切にエスケープしないので、ユーザーが /etc/mtab に任意の改行を挿入できてしまいます。追加の入力チェックを行わない setuid mount バイナリによって addmntent() が実行されると、カスタムのエントリを /etc/mtab に挿入できることになります。(CVE-2010-0296)
- strfmon() 関数の width 指定子処理に整数オーバーフローの脆弱性があり、strfmon() に渡される書式文字列を制御できる攻撃者によってトリガーされる可能性があります。(CVE-2008-1391)
- 一部のセットアップ(主に Solaris ベースのレガシーセットアップ)には「adjunct passwd」テーブルと呼ばれるシャドー情報(パスワードハッシュ)が含まれており、シャドーテーブルで保持する代わりにパスワード列の残りでマングリングします。通常、Solaris がこの情報をクライアントに開示するのは特権があるポートだけですが、 nscd がクライアントで展開されると、 getpwnam() はすべてのユーザーにパスワードハッシュを開示します。新しいモードである「adjunct as shadow」を /etc/default/nss で有効にすることによって、パスワードハッシュが「誰でも読める」なパスワードテーブルからエミュレートされたシャドーテーブルへ移されます(nscd によってキャッシュされない)。(CVE-2010-0015)
無効な動作、クラッシュ、メモリリークがいくつか修正されました:
- paranoia モードの nscd は、データベースのうちの 1 つが nscd 構成で無効化されている場合、定期的な再起動でクラッシュします。
- widechar stdio ストリームを終了する際に、メモリが漏洩する場合があります。
- 特定の稀な例として、memcpy() が power6 で、32 ビットコードで間違って 64 ビット命令を使用してしまいます。
- jrand48() が 64 ビットシステムの不適切な範囲の番号を返します。[-231, +231) ではなく、値は常にプラスで、意図されていた上限より高い場合があります。
- 動作可能時間の約 300 日ごとに、times() 関数が 4096 秒間エラーをレポートします。これはシステムコールが i386 に実装される方法にある副作用です。エラーを報告し、アプリケーションをクラッシュすることがないように glibc が変更されました。これにより、以前はカーネルが EFAULT を発生させます(無効なポインターが times() syscall に渡されるためです)。
- getifaddrs() が破損した ifa_name 構造フィールドで infiniband インターフェイスを報告します。
- getgroups(-1) は通常、EINVAL を設定することで、無効な配列サイズを適切に処理します。しかし、「-DFORTIFYSOURCE=2 -O2」を使用して、コードがコンパイルされる場合に、クラッシュが発生します。
- Pthread クリーンアップハンドラーは、スレッドのキャンセル時に常に呼び出されません(例えば、RPC コードでです。syscall の外でハングアップする可能性のある glibc の他の部分でもです) - glibc は現在
-fasynchronous-unwind-tables でコンパイルされます。その他のマイナーな問題が、いくつか修正されました:
- 内部 dlopen() ラッパーにフラグがないため、sprof<->dlopen() インタラクションに問題がありました。
- x86_64 で、静的デストラクタのバックトレースが _fini() glibc 疑似ルーチンで停止し、そのために、プログラムの停止理由が分かりにくくなっていました。現在、このルーチンには unwind 情報が付与されています。
- glibc-locale が、locale/gconv インデックスを再生成することで、アップグレードした場合に sap-locale とより良く共存できるようになりました。
ソリューション
ZYPP パッチ番号 7201 を適用してください。
プラグインの詳細
ファイル名: suse_glibc-7201.nasl
エージェント: unix
サポートされているセンサー: Nessus Agent, Nessus
リスク情報
ベクトル: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P
脆弱性情報
CPE: cpe:/o:suse:suse_linux
必要な KB アイテム: Host/local_checks_enabled, Host/cpu, Host/SuSE/release, Host/SuSE/rpm-list
エクスプロイトの容易さ: Exploits are available
エクスプロイト可能
CANVAS (CANVAS)
Core Impact
Metasploit (glibc LD_AUDIT Arbitrary DSO Load Privilege Escalation)