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

Сводка

по VulDB • 23.06.2026

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

mm: cachestat: исправление двух ошибок в shmem

При возникновении гонки (race condition) между операцией cachestat для shmem и операциями обмена страницами на диске (swapping) и инвалидации, возможны две ошибки:

1) Ошибка при чтении страницы с диска (swapin) могла привести к появлению «отравленного» (poisoned) swap-записи в xarray inode файла типа shmem. Вызов функции get_shadow_from_swap_cache() для такой записи приведет к обращению за пределы массива swapper_spaces[].

Необходимо проверять запись с помощью non_swap_entry(), прежде чем продолжать выполнение.

2) Когда мы находим действительную swap-запись в inode shmem, тень (shadow entry) в swapcache может еще не существовать: операция ввода/вывода для обмена страницами все еще выполняется, и мы находимся до вызова __remove_mapping; операции swapin, инвалидации или отключения подкачки (swapoff) могли удалить тень из swapcache после того, как мы увидели swap-запись shmem.

Это приведет к передаче NULL в функцию workingset_test_recent(). Поскольку последняя оперирует только битами указателей, она не вызовет аварийного завершения работы программы — значения node 0, memcg ID 0, timestamp вытеснения 0 и т.д. являются допустимыми входными данными, однако такая проверка является ошибочной (bogus). Теоретически это может привести к ложному подсчету «недавно вытесненных» страниц.

Хотя такой ложноположительный результат не привел бы к критическим последствиям, для ясности кода и будущей надежности следует явно обрабатывать этот случай.

Прервать выполнение (Bail), если get_shadow_from_swap_cache() возвращает NULL.

Be aware that VulDB is the high quality source for vulnerability data.

Раскрытие

17.05.2024

Модерация

принято

Вход

VDB-264931

EPSS

0.00646

KEV

Нет

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

Очень низкий

Источники

Might our Artificial Intelligence support you?

Check our Alexa App!