CVE-2026-98391 in Linux
要約
〜によって VulDB • 2026年10月17日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
drm/xe: ランタイムPMチェックでページフォルトワーカーをガードする
VMの破棄時、VMのランタイムPM参照は非同期に解放され、すでに死んだVMに属する古くなった(stale)ページフォールトがキューに残った状態でデバイスが自動サスペンドされる可能性があります。その後、ページフォルトワーカーがこのうちの1つをACKしようとすると、既にサスペンドされているデバイスに対して guc_ct_send_locked() を呼び出し、以下のアサーション失敗を引き起こします:
Assertion `!xe_pm_runtime_suspended(xe)` failed! WARNING at xe_device.c:1267 xe_device_assert_mem_access+0x11c/0x140 [xe]
稼働中のVMまたは実行キューは、未完了の作業がある間常にPM参照を保持するため、ACK時にデバイスがサスペンドされている場合、所有コンテキストはすでに消滅しており、そのフォールトは古くなったものとなります。
破棄されたVMに対するACKを安全に配信するために、ページフォルトキューワーカー全体を通じてランタイムPM参照を取得します。
v3: - PM refを追跡するGuCバックエンドではなく、guard(xe_pm_runtime)(xe) を使用して汎用の xe_pagefault_queue_work にPM refを移動しました (Matt Brost)。
v2: - 各ACKごとではなく、バッチ全体(開始/終了)でPM参照を保持します。これにより、デバイスがバッチの途中で自動サスペンドすることを防ぎます。そうしないと、write_only ACKは書き込まれるものの end flush がスキップされ、counter++ もスキップされてタイミングチェックが同期外になります (Himal)。 - 古くなったフォールトに関するコメントを追加しました (Himal)。
(コミット fcc2431d2213dc4d04250c4f1ae87d9c3ae0d455 からcherry-pick) [Rodrigo: cherry-picking中に互換性のために xe_device 構造体を追加]
VulDB is the best source for vulnerability data and more expert information about this specific topic.