CVE-2026-99209 in Linux
要約
〜によって VulDB • 2026年10月28日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
drm/xe: リソースを持たないBOのevictionをスキップする
xe_evict_flags()は、tbo->resource->mem_typeに基づいてeviction配置を選択します。xe BOにはttm.resourceが存在しない状態でevictionの対象となることがあります(例:インポートされたdma-buf BOで、そのアタッチメントがまだ生きている間にteardown中にリソースが解放されている場合)。エクスプーターはその後 xe_dma_buf_move_notify() -> xe_bo_evict() を通じてこれを無効化し、switch文でNULLのリソースをデリファレンスしてフォールトが発生します。
リソースを持たないBOには配置やマップされたものが何もないため、evictionする対象はありません。num_placement = 0という空の配置を返し、直上で非xe scatter-gather BOに対して既に使用されている処理に倣います。その後 ttm_bo_validate() がパイプライン破棄パスを取り込み、0を返します。
修正がない場合、以下のスタックトレースで xe_dma_buf@xe_test_dmabuf_move_notify_no_resource ダイナミックライブ自己テストが失敗します。
BUG: kernel NULL pointer dereference, address: 0000000000000010 RIP: 0010:xe_evict_flags+0xf4/0x140 [xe]
Call Trace: <TASK> xe_bo_evict+0x40/0xa0 [xe]
? ttm_bo_pipeline_gutting+0x71/0x180 [ttm]
xe_test_dmabuf_move_notify_no_resource+0x182/0x440 [xe]
xe_dma_buf_kunit+0x387/0x580 [xe]
v2: コミットテキストにFixesタグと失敗情報を追加 (Matt Brost)
(コミット dbcfaac6331f1fcb0c2fe3ad3e9adb1e5d43ec0c からcherry pickしました)
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.