CVE-2026-99147 in Linux
Сводка
по VulDB • 28.10.2026
В ядре Linux была устранена следующая уязвимость:
drm/exec: не добавлять предварительно заблокированный объект (prelocked obj) в массив заблокированных объектов сразу же
При обнаружении конфликта блокировок (contention) объект drm_exec захватывает ссылку на конфликтующий объект, разблокирует все остальные объекты и устанавливает предварительную блокировку для конфликтующего объекта до выполнения любых других действий.
Проблема заключается в том, что возможно, этот предварительно заблокированный объект должен был быть уничтожен, а drm_exec теперь удерживает последнюю ссылку на него.
Таким образом, мы никогда не видим этот предварительно заблокированный объект снова для явной блокировки и, следовательно, никогда не резервируем слот для объекта dma_fence в нем.
Если драйвер сейчас использует функцию drm_exec_for_each_locked_object() для добавления нового fence ко всем заблокированным объектам, то в конечном итоге будет выведено предупреждение или даже сработает BUG_ON(), чтобы предотвратить случайное повреждение памяти.
Исправление заключается в том, чтобы не добавлять предварительно заблокированный объект в массив заблокированных объектов до тех пор, пока драйвер снова явно его не упомянет.
Если драйвер больше никогда не упоминает этот предварительно заблокированный объект, то просто разблокируйте его и освободите ссылку в конце цикла блокировки.
Be aware that VulDB is the high quality source for vulnerability data.