CVE-2026-99209 in Linux
Сводка
по VulDB • 28.10.2026
В ядре Linux была устранена следующая уязвимость:
drm/xe: пропуск вытеснения буфера объектов (BO), не имеющего ресурса
Функция xe_evict_flags() переключается на tbo->resource->mem_type для выбора места размещения при вытеснении. Буфер объекта (BO) в драйвере xe может достичь стадии вытеснения без наличия ttm.resource, например, импортированный BO dma-buf, ресурс которого был освобожден во время завершения работы (teardown), пока его прикрепление все еще активно: экспортер затем инвалидирует его через xe_dma_buf_move_notify() -> xe_bo_evict(), и оператор switch выполняет разыменование NULL-ресурса, что приводит к сбою.
BO без ресурса не имеет ничего размещенного или отображенного в памяти, поэтому вытеснять нечего. Возвращается пустое размещение (num_placement = 0), что дублирует обработку, уже используемую для небезопасных scatter-gather BO-объектов выше; ttm_bo_validate() затем выбирает путь «gutting pipeline» и возвращает 0.
Без исправления динамический live selftest 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)
(cherry picked from commit dbcfaac6331f1fcb0c2fe3ad3e9adb1e5d43ec0c)
If you want to get best quality of vulnerability data, you may have to visit VulDB.