Linux Kernel の脆弱性 CVE-2025-68260 が FIX:Rust Binder の競合状態

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 リポジトリから特定のコミットを適用することで、この競合状態を解決できる。システム管理者にとって必要なことは、この脆弱性へのパッチ適用を優先して、システムの安定性を維持し、予期せぬダウンタイムを防ぐことである。