В ядре Linux устранена следующая уязвимость:
crypto: ccp — проверка правильности выделения страниц в TIO. Сашико отмечает:
> если __snp_alloc_firmware_pages() возвращает NULL из-за нехватки памяти, так ли это?
> безопасно передать его непосредственно в page_address()?
>
> На архитектурах без HASHED_PAGE_VIRTUAL, page_address(NULL) может
> вычислить детерминированный, но недействительный, ненулевой виртуальный адрес.
> последующая проверка if (tio_status) будет иметь значение true, и
> sev_tsm_init_locked() разыменует недопустимый указатель. Действительно, page_address(NULL) вернет здесь мусор, отличный от NULL.
Исправьте это с помощью
проверка самого выделения страницы на NULL, а не результирующего виртуального
адрес.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: crypto: ccp - Check for page allocation failure correctly in TIO Sashiko notes: > if __snp_alloc_firmware_pages() returns NULL under memory pressure, is it > safe to pass it directly to page_address()? > > On architectures without HASHED_PAGE_VIRTUAL, page_address(NULL) might > compute a deterministic but invalid, non-zero virtual address. The > subsequent if (tio_status) check would then evaluate to true, and > sev_tsm_init_locked() would dereference the invalid pointer. Indeed, page_address(NULL) will return non-NULL garbage here. Fix this by checking the page allocation itself for NULL, not the resulting virtual address.
Характеристики атаки
Последствия
Строка CVSS v3.1