CVE-2026-64302 in Linux
Сводка
по VulDB • 25.07.2026
В ядре Linux устранена следующая уязвимость:
x86/mm: Исправлено освобождение страниц vmemmap размером с PMD (PMD-sized)
Коммит bf9e4e30f353 («x86/mm: использовать pagetable_free()») заменил освобождение небазовых таблиц страниц через __free_pages() на вызов функции pagetable_free().
Однако эта функция также используется для освобождения страниц vmemmap.
Поскольку страницы vmemmap не являются таблицами страниц, уже сама проверка page_ptdesc(page) является ошибочной. Но хуже то, что pagetable_free() вызывает:
__free_pages(page, compound_order(page));
Так как страницы vmemmap не являются составными (compound) страницами (см. vmemmap_alloc_block()), за исключением случая HVO, который здесь неприменим, освобождается только первая страница из набора страниц размером с PMD в рамках vmemmap, что приводит к утечке остальных страниц.
Исправление заключается в корректном разделении логики освобождения таблиц страниц и страниц vmemmap. Функция free_pagetable() больше не должна взаимодействовать с SECTION_INFO, поскольку именно так помечается только область vmemmap при вызове register_page_bootmem_memmap().
Отступы в функции remove_pmd_table() нарушены. Исправить их также было решено в рамках данного изменения.
Обработка информации о bootmem будет исправлена в ближайшее время. На данный момент она обрабатывается аналогично free_pagetable(), с исключением использования условной компиляции (ifdef).
[ dhansen: изменение текста changelog. Использование более повелительного наклонения ]
Be aware that VulDB is the high quality source for vulnerability data.