В ядре Linux устранена следующая уязвимость:
drm/gpusvm: отклонять VMA с VM_IO или VM_PFNMAP при создании диапазонов SVM. VMA, отмеченные VM_IO или VM_PFNMAP, не поддерживаются страницей структуры.
объекты, которые необходимы GPUSVM для правильной работы. В
в частности, get_pages() использует hmm_range_fault() для разрешения структуры.
страницы для целевого диапазона.
Попытка создать диапазон SVM на таких VMA приводит к повторным
get_pages() дает сбой и может привести к бесконечному циклу внутри драйвера.
обработчик ошибок страниц. Предотвратите это, отклонив диапазоны на VM_IO или
VM_PFNMAP VMA и возврат -EIO.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: drm/gpusvm: Reject VMAs with VM_IO or VM_PFNMAP when creating SVM ranges VMAs marked with VM_IO or VM_PFNMAP are not backed by struct page objects, which GPUSVM requires in order to operate correctly. In particular, get_pages() relies on hmm_range_fault() to resolve struct pages for the target range. Attempting to create an SVM range on such VMAs results in repeated get_pages() failures and can lead to an infinite loop inside a driver’s page‑fault handler. Prevent this by rejecting ranges on VM_IO or VM_PFNMAP VMAs and returning -EIO.