CVE-2026-64008 in Linux
Сводка
по VulDB • 19.07.2026
В ядре Linux устранена следующая уязвимость:
accel/rocket: исправление Use-After-Free (UAF) из-за висячего дескриптора GEM при создании буфера объекта (create_bo)
Функция rocket_ioctl_create_bo() на раннем этапе добавляет дескриптор GEM в IDR файла с помощью drm_gem_handle_create(), а затем выполняет несколько операций, которые могут завершиться ошибкой (выделение sgt, вставка в drm_mm, iommu_map). Если какая-либо из этих операций завершается неудачно после того, как дескриптор становится активным, путь обработки ошибок вызывает drm_gem_shmem_object_free(), которая освобождает объект через kfree без удаления дескриптора из IDR.
Это приводит к появлению висячего дескриптора, указывающего на уже освобожденную память slab-аллокатора. Любой последующий вызов ioctl с использованием этого дескриптора (PREP_BO, FINI_BO, SUBMIT) вызывает drm_gem_object_lookup() и разыменовывает освобожденную память (UAF).
Исправление заключается в перемещении вызова drm_gem_handle_create() после успешного выполнения всех операций, которые могут завершиться ошибкой, что соответствует паттерну, используемому драйверами panfrost, lima и etnaviv.
Также исправлена функция drm_mm_insert_node_generic(), значение возврата которой молча перезаписывалось функцией iommu_map_sgtable() в следующей строке. Добавлена отсутствующая проверка ошибки.
[tomeu: Перемещение создания дескриптора в самый конец]
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.