New Linux Kernel Rust Vulnerability Triggers System Crashes
2024/12/19 gbhackers — Linux Kernel の Rust Binder モジュールに、深刻な競合状態の脆弱性 CVE-2025-68260 が発見された。この脆弱性を悪用する攻撃者は、特定の条件下においてシステム・クラッシュやメモリ破損を引き起こす可能性がある。この問題は Kernel のプロセス間通信メカニズムに影響を与えるものであり、Kernel メンテナーおよびシステム管理者に対して早急な対応が求められている。

脆弱性 CVE-2025-68260 の詳細
この脆弱性は Rust Binder コンポーネントの “death_list” 処理メカニズムに存在し、適切な同期を行わずにリンク・リストから項目を削除するという、安全でない操作に起因する。問題のコードは排他アクセスを保証しない状態で、リスト・ポインタを操作しようとするため危険な競合状態を引き起こす。
具体的に言うと、Node::release 関数の特定の実装パターンに原因がある。このコード・シーケンスは、ロックを取得してリスト項目をスタック上のローカル・リストに移動させた後に、項目を反復処理する前の段階でロックを解除してしまう。
その結果として、他のスレッドがオリジナル・リストを処理している間に、”prev/next” ポインタに同時アクセスされる隙が生じ、メモリ破損につながる可能性がある。この競合状態が発生すると、システムは Kernel パニックやページ・フォールトを引き起こす。その結果として、影響を受けるデバイスは “仮想アドレスでの Kernel ページング要求を処理できない” といったエラーを発生し、システムがクラッシュする。
こうした内部メモリ破損は Kernel Oops メッセージとして現れ、システムを不安定化させる。脆弱な Kernel バージョンを実行しているデバイスでは、予期せぬ再起動やサービス中断を引き起こす恐れがある。
影響範囲および緩和策
この脆弱性は、Kernel バージョン 6.18 において Binder コードに対して行われた特定のコミットにより取り込まれ、”drivers/android/binder/node.rs” ファイルに直接影響する。すでに kernel 6.18.1 / 6.19-rc1 で修正されており、アップストリームのリポジトリに修正プログラムが提供されている。
Linux kernel 開発チームが強く推奨するのは、最新の安定版 Kernel バージョンへのアップデートである。この脆弱性に対する変更は、大規模リリースの一部としてテストされているため、個別コミットのチェリーピックではなく Kernel 全体のアップデートが推奨される。
迅速なアップデートが不可能なユーザーは、Kernel リポジトリから特定のコミットを適用することで、この競合状態を解決できる。システム管理者にとって必要なことは、この脆弱性へのパッチ適用を優先して、システムの安定性を維持し、予期せぬダウンタイムを防ぐことである。
この問題の原因は、Linux Kernel 内の Rust Binder と呼ばれるコンポーネントにおける、データの処理順序やタイミング制御の不備に起因します。具体的には、”death_list” というリストからデータを削除する際に、複数の処理が同時に書き換えを行わないように保護する “ロック” を、処理が終わる前に解除してしまうという問題があります。その一瞬の隙に、別の処理が同じ場所へアクセスしてしまう “競合状態” が発生し、メモリ内のデータ構造が壊されてしまいます。ご利用のチームは、ご注意ください。よろしければ、Linux Kernel での検索結果も、ご参照ください。
You must be logged in to post a comment.