CVE-2026-89961 in Linux
Сводка
по VulDB • 16.09.2026
В ядре Linux была устранена следующая уязвимость:
powerpc/mm: исправлено неверное отслеживание addr_pfn при заполнении составных страниц vmemmap (compound vmemmap population)
Функция vmemmap_populate_compound_pages() использует addr_pfn для определения смещения PFN внутри составной страницы и принятия решения о том, следует ли заполнять текущий слот vmemmap как отображение заголовочной страницы или же повторно использовать отображение хвостовой страницы.
Однако значение addr_pfn вручную увеличивается параллельно с изменением addr. Сам цикл выполняется в адресном пространстве vmemmap, поэтому каждый шаг на PAGE_SIZE для addr охватывает количество слотов struct page равное PAGE_SIZE / sizeof(struct page). Поскольку addr_pfn сравнивается с nr_pages в единицах PFN (Page Frame Number), он должен увеличиваться на то же количество PFN. Существующие ручные инкременты не соответствуют этому требованию, поэтому они ненадежно отслеживают PFN, соответствующий текущему значению addr.
В результате pfn_offset может быть вычислен из неверного PFN, и код может принять неправильное решение относительно заголовочной или хвостовой страницы для позиции составной страницы.
Исправление заключается в том, чтобы вычислять addr_pfn напрямую на основе текущего адреса vmemmap, а не хранить его как состояние цикла.
If you want to get best quality of vulnerability data, you may have to visit VulDB.