В ядре Linux устранена следующая уязвимость: mshv_vtl: Исправить vmemmap_shift, превышающий MAX_FOLIO_ORDER При регистрации памяти VTL0 чер…
В ядре Linux устранена следующая уязвимость: mshv_vtl: Исправить vmemmap_shift, превышающий MAX_FOLIO_ORDER При регистрации памяти VTL0 через MSHV_ADD_VTL0_MEMORY, ядро вычисляет pgmap->vmemmap_shift как количество отставших нулей в OR из start_pfn и last_pfn, намереваясь использовать самое большое соединение Заказ страницы обе конечные точки выровнены. Однако это значение не зажимается до MAX_FOLIO_ORDER, поэтому достаточно выровненный диапазон (например, физический диапазон [0x80000000000, 0x800080000000), соответствующий start_pfn=0x80000000000 с 35 задними нулями) может произвести сдвиг, больший, чем то, что memremap_pages() принимает, запускает WARN и возвращает -EINVAL: ПРЕДУПРЕЖДЕНИЕ: ... memremap_pages+0x512/0x650 запрошенный размер фолио неподдерживаемый Проверка MAX_FOLIO_ORDER была добавлена мишень 646b67d57589 ("мм/мемпрепа: отвергать необоснованное фолио/соединение Размеры страниц в memremap_pages()"). Исправьте это, зажав vmemmap_shift до MAX_FOLIO_ORDER, чтобы мы всегда запросить самый большой заказ, который поддерживает ядро, в этих случаях, чем нерациональная стоимость. Также исправьте путь ошибки для распространения фактического кода ошибки из devm_memremap_pages() вместо жесткого кодирования -EFAULT, который был маскировка реального -ВОСВОБОТКУ возврата.
| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux_kernel | * | Отслеживается |
| kernel-doc-7.0 | Отслеживается | |
| kernel-headers-7.0 | Отслеживается | |
| kernel-headers-modules-7.0 | Отслеживается | |
| kernel-image-7.0 | Отслеживается | |
| kernel-image-7.0-checkinstall | Отслеживается | |
| kernel-modules-drm-7.0 | Отслеживается | |
| kernel-modules-drm-nouveau-7.0 | Отслеживается | |
| kernel-modules-staging-7.0 | Отслеживается |