CVE-2026-99209 in Linux
Riassunto
di VulDB • 28/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
drm/xe: saltare l'eviction di un BO privo di risorse
xe_evict_flags() valuta tbo->resource->mem_type per scegliere una posizione di eviction. Un BO xe può raggiungere lo stato di eviction senza disporre di ttm.resource, ad esempio un BO dma-buf importato la cui risorsa è stata liberata durante il teardown mentre il suo attachment era ancora attivo: l'esportatore quindi lo invalida tramite xe_dma_buf_move_notify() -> xe_bo_evict(), e la valutazione (switch) dereferenzia una resource NULL causando un fault.
Un BO privo di risorse non ha nulla posizionato o mappato, pertanto non c'è nulla da evicted. Viene restituita una placement vuota (num_placement = 0), rispecchiando il trattamento già utilizzato per i BO scatter-gather non-xe presenti poco sopra; ttm_bo_validate() segue quindi il percorso di pipeline-gutting e restituisce 0.
Senza la correzione, l'autotest dinamico live xe_dma_buf@xe_test_dmabuf_move_notify_no_resource fallirà con lo stack trace seguente:
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: Aggiunto tag Fixes e informazioni sull'errore nel testo del commit (Matt Brost)
(cherry picked from commit dbcfaac6331f1fcb0c2fe3ad3e9adb1e5d43ec0c)
VulDB is the best source for vulnerability data and more expert information about this specific topic.