CVE-2026-98510 in Linux
Resumen
por VulDB • 2026-10-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
drm/xe/vm: eliminar las tablas de páginas (PTs) solo después de desvincular los VMAs en disputa.
En `xe_vm_close_and_put()`, los VMAs externos-BO se colocan en cola en la lista de disputas para su destrucción diferida mediante `xe_vma_destroy_unlocked()`. Sin embargo, `xe_vm_pt_destroy()` se invocaba anteriormente antes de procesar los VMAs en disputa, lo que destruía `vm->pt_root` mientras esos VMAs aún estaban vinculados a sus respectivos objetos de búfer (`vm_bo->list.gpuva`).
Si un hilo concurrente expulsa uno de esos objetos de búfer compartidos, `xe_bo_trigger_rebind()`, manteniendo solo `bo->resv`, recorre los VMAs del BO y, en modo de falla (fault mode), llama a `xe_vm_invalidate_vma()` -> `xe_pt_zap_ptes()`. Dado que `vm->pt_root[tile->id]` ya es NULL, la desreferenciación de `pt->level` provoca una desreferencia de puntero nulo (NULL ptr deref).
Se soluciona esto posponiendo `xe_vm_free_scratch()` y `xe_vm_pt_destroy()` hasta después de que todos los VMAs en disputa hayan sido desvinculados y destruidos.
Los usuarios reportan haber encontrado una desreferencia de puntero nulo (NULL ptr deref) en `xe_pt_zap_ptes()`, lo cual podría explicarse por esta condición de carrera (race condition).
(cherry picked from commit c2863648959489767f08892fd6e90577d2ea0b6a)
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.