LinuxカーネルのRust Binderモジュールに重大な競合状態(レースコンディション)の脆弱性が発見され、システムクラッシュやメモリ破損を引き起こす可能性があります。
CVE-2025-68260が割り当てられたこの問題は、カーネルのプロセス間通信メカニズムに影響し、システム管理者およびカーネルメンテナーによる迅速な対応が必要です。
脆弱性の概要
この脆弱性は、Rust Binderコンポーネントのdeath_list処理メカニズムに存在します。不具合は、適切な同期なしに連結リストから項目を削除する危険な操作に起因します。
問題のあるコードは、排他的アクセスを確保しないままリストポインタを操作しようとするため、危険な競合状態を生み出します。
この問題は、Node::release関数における特定の実装パターンから発生します。コードの流れは、ロックを取得し、リスト項目をローカルのスタックベースのリストへ移動し、その後、項目を反復処理する前にロックを解放するというものです。
他のスレッドが元のリストを処理している間に、prev/nextポインタへの同時アクセスの機会が生じ、メモリ破損につながる可能性があります。
この競合状態が引き起こされると、システムはカーネルパニックやページフォルトを起こします。影響を受けるデバイスは、「Unable to handle kernel paging request at virtual address.」に類似したエラーでクラッシュします。
この脆弱性は内部メモリ破損として現れ、kernel oopsメッセージやシステムの不安定化を招きます。
脆弱なカーネルバージョンを実行しているデバイスでは、予期しない再起動やサービス中断が発生する可能性があります。
この脆弱性は、binderコードへの特定のコミット変更により、カーネルバージョン6.18で導入されました。drivers/android/binder/node.rsファイルに直接影響します。
この問題は修正済みであり、カーネル6.18.1および6.19-rc1でパッチが適用され、上流のカーネルリポジトリで修正が利用可能です。
Linuxカーネル開発チームは、最新の安定版カーネルへの更新を強く推奨しています。
変更はより大きなリリースの一部としてテストされるため、個別コミットのチェリーピックよりも、完全なカーネル更新が望ましいとされています。
直ちに更新できないユーザーは、カーネルリポジトリから特定のコミットを適用することで、この競合状態を解消できます。
システム管理者は、システムの安定性を維持し、予期せぬダウンタイムを防ぐために、この脆弱性のパッチ適用を最優先すべきです。
翻訳元: https://gbhackers.com/new-linux-kernel-rust-vulnerability/