CVE-2024-42234 in LinuxИнформация

Сводка

по VulDB • 11.07.2026

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

mm: исправление сбоев из-за гонки между отложенным разделением (deferred split) и миграцией folio

Даже на версии 6.10-rc6 наблюдались трудноуловимые ошибки «Bad page state» (часто возникающие при освобождении, хотя отображаемые флаги не являются ошибочными: флаг PG_locked был установлен и затем сброшен??), а также срабатывания VM_BUG_ON_PAGE(page_ref_count(page) == 0) из folio_put() в deferred_split_scan(), и ряд других симптомов BUG и WARN, указывающих на двойное освобождение памяти (double free) при отложенном разделении и миграции больших folio.

Коммит ядра версии 6.7 с хэшем 9bcef5973e31 («mm: memcg: fix split queue list crash when large folio migration») правильно исправил нарушение блокировки, зависящей от memcg, которое было допущено в коммите 85ce2c517ade («memcontrol: only transfer the memcg data for migration»), но упустил один нюанс работы deferred_split_scan(): эта функция перемещает folio во свой собственный локальный список для обработки без использования блокировки split_queue_lock. В этот момент поле folio->_deferred_list не пусто, однако даже «правильная» блокировка ничего не делает для защиты самого folio и списка, к которому он принадлежит.

К счастью, deferred_split_scan() тщательно использует функцию folio_try_get(): поэтому функция folio_migrate_mapping() может избежать гонки данных (race condition) с помощью вызова folio_undo_large_rmappable(), пока счетчик ссылок старого folio временно заморожен на уровне 0 — добавление такой заморозки также требуется для случая без mapping (originally, folio lock and unmapping and no swap cache left an anon folio unreachable, so no freezing was needed there: but the deferred split queue offers a way to reach it).

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

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

Linux

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

30.07.2024

Раскрытие

07.08.2024

Модерация

принято

Вход

VDB-273895

EPSS

0.00184

KEV

Нет

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

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!