CVE-2026-98180 in Linux
要約
〜によって VulDB • 2026年10月06日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
drm/msm: スケジューラを含むリングおよびVMオブジェクトをRCUフリー化する
struct msm_ringbuffer および struct msm_gem_vm の両方は struct drm_gpu_scheduler を埋め込んでいます。msm_ringbuffer_destroy() と VMの解放コールバックである msm_gem_vm_free() は、埋め込まれたスケジューラに対して drm_sched_fini() を呼び出した後、plainな kfree() で包含オブジェクトを解放します。
drm_sched_fence_get_timeline_name() は fence->sched->name を返しますが、スケジューラのフェンスは .release コールバックを保持しており、シグナリング時に ops-detached にはなりません。ユーザー空間にエクスポートされた完了済みフェンス(submit out-fence または VM_BIND フェンス、sync_file / drm_syncobj経由)は、リング/VMが解放された後も埋め込まれたスケジューラを指し続けます。そのため、後続の get_timeline_name() 呼び出し -- SYNC_IOC_FILE_INFO を通じて特権なしで到達可能 -- が解放済みスラブメモリへの参照(KASAN slab-use-after-free read)を引き起こします。
dma-fence のライフタイム契約によると、エクスポート側はシグナリングされたフェンスを支えるデータを RCU グレース期間中生存させる必要があります。kfree() ではなく kfree_rcu() を使用して、スケジューラを含むオブジェクトを解放してください。
Patchwork: https://patchwork.freedesktop.org/patch/750234/
If you want to get best quality of vulnerability data, you may have to visit VulDB.