CVE-2026-98385
sched/cache: UAFを修正するためsched_cache_groupをmmから分離
- 公開済み
- 2026/10/12
- 更新済み
- 2026/10/24
- CNA の割り当て
- Linux
- 観察された証拠
- 2026/11/04
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H低 · 今後 30 日間
- パーセンタイル
- 7.3%
- モデルの日付
- 2026/11/04
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Linuxカーネルにおいて、以下の脆弱性が修正されました: sched/cache: UAFを修正するためにsched_cache_groupをmmから分離する。現在、schedキャッシュのグループ化はmm単位で行われており、スケジューリング統計sched_cache_statはmm構造体内に存在します。このため、スケジューリング統計のライフサイクルがmmと結びついています。account_mm_sched()では、スケジューリング統計はtask->mm->sc_statを介してアクセスされます。しかし、あるCPUでタスクがmmを切り替えている最中に、別のCPUでaccount_mm_sched()が実行され、解放済みの古いmmにアクセスする可能性があります。この問題は、HyunwooがKASANを用いたテストを実行した際に発見されました: https://lore.kernel.org/lkml/apPb-Dr4nPYuHQOK@v4bel/ mmの解放パスにおいてrqロックを追加取得することでmmアクセスを直列化する代わりに、sched_cache_statをmm_structから抽出し、sched_cache_groupと改名して、独自の参照カウントによってmm_structとは別にそのライフサイクルを管理します。これにより、次のパッチでタスクからsched_cache_groupに直接アクセスできるようになり、タスクがsched_cache_groupにリンクする際にその参照カウントを追加できます。これにより、タスクが新しいmmに切り替わる際にaccount_mm_sched()が別の場所で実行され、古く解放済みのmmとそのschedキャッシュ統計にアクセスした場合のuse after free問題を防ぎます。この再構築のもう一つの利点は、将来的にタスクのLLCへのグループ化を、単一のmmアドレス空間だけでなく、ユーザー定義のグループ、cgroup、cookieグループ、numa_groupなどと関連付ける柔軟性を持てることです。sched_cache_statをsched_cache_groupに改名し、mm_structから割り当てられる参照カウント付きオブジェクトにします。mm_structは、このオブジェクトを埋め込む代わりに、そのオブジェクトへのポインタ(sched_cache_grp)を保持するようになります。
ソース
CVE-2026-98385の公式PoCをARM64 Androidへ移植したもので、カーネルのSchedulerサブシステムにおける競合状態を悪用したローカル権限昇格であり、ヒープレイアウトの定数がハードコードされています。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。