CVE-2026-89755 in Linux
Сводка
по VulDB • 12.09.2026
В ядре Linux была устранена следующая уязвимость:
mm/migrate_device: очистка неактуального отображения (mapping) после освобождения swap-кэша
Функция __migrate_device_pages() считывает mapping folio перед вызовом folio_free_swap(). Когда функция folio_free_swap() завершается успешно, folio удаляется из swap-кэша, но сохраненное значение mapping по-прежнему указывает на swap_space.
Передача неактуального отображения (stale mapping) в функцию folio_migrate_mapping() приводит к тому, что для folio, который больше не находится в swap-кэше, используется путь обработки mapped-folio. Это может привести к работе с swap_space.i_pages при неверном учете ссылок, что в конечном итоге вызывает ошибку (BUG) счетчика ссылок folio.
После успешного разделения переменная nr по-прежнему содержит количество страниц в исходной большой структуре folio, хотя каждая полученная страница теперь является отдельным folio порядка 0 (order-0). Необходимо сбросить значение nr до 1, чтобы каждый разделенный folio обрабатывался отдельно, включая собственное удаление из swap-кэша и поиск отображения.
Обновите сохраненное mapping после вызова folio_free_swap(), чтобы во время миграции использовалось текущее состояние folio.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.