複数のローカルおよびリモートの脆弱性が、Linux カーネルに発見されました。 これらによりサービス不能 (DoS) 攻撃や任意のコードの実行が可能となってしまいます。 Common Vulnerabilities and Exposures プロジェクトでは以下の問題を特定しています。
Franz Filz さんは、 ソケットコールがローダブルモジュールの参照カウントの不整合を許してしまい、 ローカルユーザからのサービス不能 (DoS) 攻撃が可能となることを発見しました。
"Solar Designer" さんは、netfilter の do_replace() 関数の算術計算機能がバッファオーバフローを引き起こし、 任意のコードの実行が可能になってしまうことを発見しました。 ただしそれには CAP_NET_ADMIN 権限が必要なので、 仮想化システムや粒度の細かいアクセス制御システムでなければ問題にならないでしょう。
"Solar Designer" さんは、netfilter の do_add_counters() 関数に競合条件を発見しました。この競合条件を悪用することで、 カーネルメモリの情報開示が可能になってしまいます。CVE-2006-0038 のように、これにも CAP_NET_ADMIN 権限が必要です。
David Howells さんは、s390 の strnlen_user() 関数のアセンブリ版が、 文字列サイズの値を間違って返してしまう場合があることを見つけました。
XFS の ftruncate() 関数は未使用のブロックを晒してしまうことが発見されました。 これにより、以前に削除されたファイルの情報取得が可能になってしまいます。
O_DIRECT でマウントされたハンドルに、ある NFS のファイル操作をすると、 カーネルをクラッシュさせられることが発見されました。
メモリポリシーを設定するコードにより、カーネルをクラッシュに陥れられることが発見されました。 これにより、サービス不能 (DoS) 攻撃が可能です。
Cliff Wickman さんにより、ユーザが IA64 アーキテクチャの perfmon (perfmon.c) で BUG() アサートを起こせることが発見されました。 これにより、サービス不能 (DoS) 攻撃が可能です。
Intel EM64T システムでは、不正な ELF エントリアドレスに関連する再帰的フォールトの無限ループを発生させることにより、 サービス不能 (DoS) 攻撃が可能であることが発見されました。
Alan さんと Gareth さんは、ia64 プラットフォームの die_if_kernel() 関数に「絶対に戻ってこない」不正な宣言があり、ローカルの攻撃者に 悪用されるとカーネルクラッシュの原因となりうることを発見しました。
Intel EM64T CPU では、Linux カーネルがカノニカルでないリターンアドレスを正しく処理できず、 次の命令を発行する代わりに SYSRET 例外を報告してしまうために、 カーネルの例外ハンドラが、GS を間違えた状態のユーザスタックで動作してしまいます。 これにより、フレームを変更するローカルユーザのサービス不能 (DoS) 攻撃が可能になります。
AMD64 マシン (およびその他の第 7・8 世代の AuthenticAMD プロセッサ) には、例外がペンディングとなっている際に、FXSAVE/FXRSTOR 命令によって FOP、FIP および FDP x87 レジスタをセーブ・レストア処理する方法が原因で、 機密情報を漏らしてしまう脆弱性があることがわかりました。これによって、 あるプロセスが他のプロセスの浮動小数点命令の状態の一部を知ることが可能となってしまいます。
Marco Ivaldi さんは、リモートの攻撃者が IP パケットの ID フィールドを悪用したり、DF パケット対策の zero IP ID を迂回したりすることで、 アイドルスキャン (nmap -sI) に対する保護を迂回することができ、 望まない情報が開示されてしまう可能性を発見しました。これは、 ip_push_pending_frames 関数が、要求していない TCP SYN-ACK パケットを受信後に RST を発行する際に、誤って IP ID フィールドをインクリメントしてしまうためです。
Shaun Tancheff さんは、USB ガジェット RNDIS 実装にバッファオーバフロー (境界条件エラー) があり、 リモートの攻撃者がサービス不能 (DoS) 攻撃を引き起こせることを発見しました。 リプライメッセージを作る際に、ドライバはリプライデータのためにメモリを割り当てますが、 リプライ構造体には割り当てないためです。カーネルは、 ユーザが与えたデータをサイズの不足したメモリバッファへコピーする前に、 適切な境界チェックができません。 攻撃者はシステムをクラッシュさせたり、 ことによると任意のマシンコードを実行できてしまいます。
Oleg Nesterov さんは、RCU シグナル処理によって導入された signal.c に、 危険な BUG_ON コールを見つけました。BUG_ON コードは、switch_exit_pids() 関数では tasklist_lock を使用しているのに、siglock によっても保護されています。 これを悪用することで、ローカルユーザによるサービス不能 (DoS) 攻撃が可能かもしれません。
Hugh Dickins さんは、madvise_remove() 関数にファイルと mmap の制約に従っていないという問題を発見しました。 これによってローカルのユーザが IPC 許可を迂回してリードオンリーの tmpfs ファイルの一部を 0 で置換できてしまいます。
Alexandra Kossovsky さんは、NULL ポインタを修飾参照してしまう条件が ip_route_input() 関数にあることを報告しました。これによって、 ローカルユーザがマルチキャスト IP アドレスの経路を要求すると、 サービス不能 (DoS) 攻撃 (カーネルパニック) が可能となります。
Vlad Yasevich さんは、SCTP サブシステムにデータ妥当性検証の問題があることを報告しました。 リモートユーザが不正な形式の HB-ACK チャンクを用いることで、 バッファをオーバフローさせ、サービス不能 (DoS) 攻撃が可能となってしまいます。
Vlad Yasevich さんは、SCTP サブシステムの境界チェックコードにバグがあることを報告しました。 実際のパラメータ長の値でなく丸められたパラメータ長を使って計算している場合、 リモートの攻撃者がサービス不能 (DoS) 攻撃を引き起こせてしまいます。
Mark Mosely さんは、CIFS 共有での chroot が、 特殊な細工を施した "cd" シーケンスによって迂回できてしまうことを発見しました。
Mark Mosely さんは、SMB 共有での chroot が、 特殊な細工を施した "cd" シーケンスによって迂回できてしまうことを発見しました。
"Mu security team" は、特殊な細工を施した ECNE チャンクを利用すると、SCTP ネットワークサブシステムの不正な状態安定エントリにアクセスすることで、 カーネルクラッシュを引き起こすことができることを発見しました。 これによってサービス不能 (DoS) 攻撃が可能となります。
"Mu security team" は、フラグメント化された SCTP 制御チャンクによりカーネルパニックを引き起こし、サービス不能 (DoS) 攻撃が可能であることを発見しました。
二つのバンドルされた初期データパケットを持つ SCTP パケットにより無限再帰が発生するため、 サービス不能攻撃が可能であることが発見されました。
以下の表は、各アーキテクチャにおいて、 以上の問題を修正する版がどれかを示したものです。
| Debian 3.1 (sarge) | |
|---|---|
| Source | 2.6.8-16sarge3 |
| Alpha architecture | 2.6.8-16sarge3 |
| HP Precision architecture | 2.6.8-6sarge3 |
| Intel IA-32 architecture | 2.6.8-16sarge3 |
| Intel IA-64 architecture | 2.6.8-14sarge3 |
| Motorola 680x0 architecture | 2.6.8-4sarge3 |
| PowerPC architecture | 2.6.8-12sarge3 |
| IBM S/390 architecture | 2.6.8-5sarge3 |
| Sun Sparc architecture | 2.6.8-15sarge3 |
技術的な問題から、amd64 パッケージのビルド版はアーカイブスクリプトによって処理できませんでした。 この問題が解決されたら、更新版の DSA 1103-2 を amd64 のチェックサムとともに再送します。
以下の表は、この更新との互換性のため、 またはこの更新を利用するために再ビルドされた追加パッケージのリストです。
| Debian 3.1 (sarge) | |
|---|---|
| fai-kernels | 1.9.1sarge2 |
直ちに kernel パッケージをアップグレードし、 マシンを再起動することをお勧めします。kernel ソースパッケージからカスタムカーネルをビルドしていた場合は、 これらの修正を利用するために再ビルドが必要です。
一覧にあるファイルの MD5 チェックサムは勧告の原文にあります。