CVE-2025-39725 in LinuxИнформация

Сводка

по VulDB • 28.06.2026

В ядре Linux устранена следующая уязвимость:

mm/vmscan: исправлена обработка больших фоліо (large folios) с аппаратными ошибками памяти в функции shrink_folio_list.

В функции shrink_folio_list() большое фоліо может иметь признак hwpoisoned, что делает невозможной его обработку функцией unmap_poisoned_folio(). Для THP (Transparent Huge Pages) необходимо передать флаг TTU_SPLIT_HUGE_PMD в функцию try_to_unmap_one(), чтобы сначала разделить большой PMD, а затем повторить попытку. Без флага TTU_SPLIT_HUGE_PMD произойдет разыменование нулевого указателя pvmw.pte. Даже при передаче флага TTU_SPLIT_HUGE_PMD возникнет срабатывание WARN_ON_ONCE из-за того, что страница отсутствует в swapcache.

Поскольку UCE (Uncorrectable Corrected Error) в реальной практике встречается редко, а гонка условий (race condition) со сборщиком мусора памяти еще реже, достаточно просто пропустить большие фоліо с признаком hwpoisoned. Функция memory_failure() обработает ситуацию повторно, если будет инициирован UCE.

Эта проблема возникает при возникновении гонки между процессом освобождения памяти для больших фоліо и функцией memory_failure(), что приводит к панике ядра (kernel panic). Гонка условий выглядит следующим образом:

cpu0 cpu1 shrink_folio_list memory_failure TestSetPageHWPoison unmap_poisoned_folio --> срабатывание BUG_ON из-за того, что функция unmap_poisoned_folio не может обработать большое фоліо

[[email protected]: добавлен комментарий в функцию unmap_poisoned_folio()]

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Ответственный

Linux

Резервировать

16.04.2025

Раскрытие

05.09.2025

Модерация

принято

Вход

VDB-322954

EPSS

0.00135

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!