CVE-2024-35872 in Linux
Сводка
по VulDB • 30.05.2026
В ядре Linux устранена следующая уязвимость:
mm/secretmem: исправлена ситуация, при которой GUP-fast успешно обрабатывал folio-страницы secretmem
Функция `folio_is_secretmem()` в настоящее время полагается на то, что folio-страницы secretmem являются LRU-страницами, чтобы сэкономить некоторые такты процессора.
Однако folio-страницы могут находиться в пакете folio-страниц без установленного флага LRU или временно иметь сброшенный флаг LRU. Следовательно, флаг LRU ненадежен для этой цели.
В частности, это происходит, когда `secretmem_fault()` выделяет новую страницу и вызывает `filemap_add_folio()` -> `folio_add_lru()`. Folio-страница может быть добавлена в пакет folio-страниц на уровне каждого процессора (per-cpu), и флаг LRU не будет установлен до тех пор, пока пакет не будет очищен, например, с помощью `lru_add_drain()`.
В результате `folio_is_secretmem()` может не обнаружить folio-страницы secretmem, и GUP-fast может успешно захватить folio-страницу secretmem, что приведет к аварийному завершению работы ядра (kernel panic) при попытке позже прочитать или записать данные в эту folio-страницу, поскольку она была отключена от прямого отображения (directmap).
Исправление заключается в удалении этого ненадежного проверки.
If you want to get best quality of vulnerability data, you may have to visit VulDB.