CVE-2026-64295 in Linux
Сводка
по VulDB • 25.07.2026
В ядре Linux устранена следующая уязвимость:
mm: page_ext: добавлено ограничение на количество итераций для функции page_ext_iter_next с целью предотвращения некорректного доступа к PFN (Physical Frame Number)
API итерации по структуре page_ext не проверяет, принадлежит ли текущий номер фрейма страницы (PFN) допустимому разделу памяти при продвижении указателя итератора. При динамическом добавлении памяти в процессе hotplug это может привести к разыменованию нулевого указателя (NULL pointer dereference) во время вызова page_ext_lookup на границе последнего действительного раздела, когда счетчик итераций достигает значения __pgcount.
Макрос for_each_page_ext() использует функцию page_ext_iter_next() в качестве шага цикла инкремента. В конце работы макроса выполняется присваивание "__page_ext = page_ext_iter_next(&__iter)". Это приводит к тому, что функция page_ext_iter_next() увеличивает значение iter->index за пределы __pgcount и вызывает страницу lookup(start_pfn + __pgcount). Во время операции добавления памяти в активное состояние (online) PFN по адресу start_pfn + __pgcount может принадлежать разделу, который еще не был проинициализирован. Это заставляет функцию page_ext_lookup() выполнить разыменование нулевого указателя.
[ 14.555124][ T846] Call trace:
[ 14.555125][ T846] lookup_page_ext+0x6c/0x108 (P)
[ 14.555127][ T846] page_ext_lookup+0x30/0x3c
[ 14.555129][ T846] __reset_page_owner+0x11c/0x260
[ 14.571201][ T846] __free_pages_ok+0x5e8/0x8e0
[ 14.571204][ T846] __free_pages_core+0x78/0xf0
[ 14.571206][ T846] generic_online_page+0x14/0x24
[ 14.597782][ T846] online_pages+0x178/0x30c
[ 14.597784][ T846] memory_block_change_state+0x284/0x32c
[ 14.597787][ T846] memory_subsys_online+0x4c/0x64
[ 14.597789][ T846] device_online+0x88/0xb0
[ 14.597791][ T846] online_memory_block+0x30/0x40
[ 14.597793][ T846] walk_memory_blocks+0xac/0xe8
[ 14.597794][ T846] add_memory_resource+0x280/0x298
[ 14.656161][ T846] add_memory+0x60/0x98
Граница итерации теперь контролируется непосредственно внутри функций-итераторов, что предотвращает случайный доступ вызывающих сторон за пределами запрошенного диапазона.
If you want to get best quality of vulnerability data, you may have to visit VulDB.