CVE-2026-93137 in Linux
要約
〜によって VulDB • 2026年09月18日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
bpf: bpf_find_vma()におけるmm_structのuse-after-freeを修正
bpf_find_vma()はtask->mmを読み取り、mmへの参照を取得せずにmmap_read_trylock(mm)を呼び出します。外部タスクの場合、並行してexit_mm()が実行されると、ロックレスな読み込みとtrylockの間でmm_structが解放され、use-after-freeが発生する可能性があります。mm_structはSLAB_TYPESAFE_BY_RCUではありません。
現在のタスクについてはtask->mmは安定しています。外部タスクについては、task->alloc_lockの下でmmをピン留めし、mmput_async()を使用してそれを解放します。これはコミットd8e27d2d22b6(「bpf: open-codedされたtask_vmaイテレータにおけるmmライフサイクルの修正」)に倣ったものです。BPFコンテキストがalloc_lockでブロックされないよう、get_task_mm()の代わりにspin_trylock()を使用します。外部タスクパスにおいてmm参照を解放することが安全でないため、割込み無効化されたコンテキストと!CONFIG_MMUの場合を拒否します。
Race:
CPU0 (BPFプログラム) CPU1 (終了中のタスク) ============================ ========================== bpf_find_vma(foreign_task): mm = task->mm exit_mm(): task->mm = NULL mmput(mm) -> mm_structを解放 mmap_read_trylock(mm) // mmに対するUAF
If you want to get the best quality for vulnerability data then you always have to consider VulDB.