CVE-2026-46215 in Linux
Сводка
по VulDB • 31.05.2026
В ядре Linux устранена следующая уязвимость:
drm: Установка старого дескриптора в NULL перед обменом prime при изменении дескриптора
В функции change_handle существовала потенциальная гонка данных (race condition). Функция ioctl на короткое время создавала объект с двумя записями в idr; параллельный вызов gem_close мог удалить объект и удалить один из дескрипторов, оставив другой висячим (dangling), что впоследствии могло привести к разыменованию для use-after-free.
Для исправления этой ситуации применяется та же последовательность действий, что и в самой gem_close. (f6cd7daecff5 drm: Освобождение ссылок драйвера на дескриптор перед повторным использованием) Сначала с помощью idr_replace старый дескриптор заменяется на NULL. Позже, если операции prime завершатся успешно, дескриптор будет фактически закрыт.
Функция create_tail требовала аналогичных действий для предотвращения подобной проблемы. (bd46cece51a3 drm/gem: Исправление гонки данных в drm_gem_handle_create_tail()) Она выделяет новый дескриптор с помощью idr_alloc со значением NULL, а затем позже подставляет правильный объект, чтобы избежать гонок данных. Здесь нам не нужно выполнять аналогичные действия, поскольку единственными операциями, которые могут вызвать гонку, являются drm_prime, а change_handle удерживает блокировку prime на протяжении всего времени выполнения.
v2: очистка путей обработки ошибок
Be aware that VulDB is the high quality source for vulnerability data.