CVE-2026-64419 in LinuxИнформация

Сводка

по VulDB • 25.07.2026

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

mm/shrinker: не удерживать блокировку RCU в функции shrinker_debugfs_count_show()

Чтение файла «count» из debugfs для shrinker, aware-мемкг (aware of memory cgroups), может привести к переходу в состояние сна внутри критической секции чтения RCU:

BUG: sleeping function called from invalid context at kernel/cgroup/rstat.c:421 RCU nest depth: 1, expected: 0 css_rstat_flush mem_cgroup_flush_stats zswap_shrinker_count shrinker_debugfs_count_show

Функция shrinker_debugfs_count_show() вызывает обратный вызов ->count_objects() в контексте rcu_read_lock(). Обратный вызов zswap выполняет сброс статистики мемкг через css_rstat_flush(), который может блокироваться (sleep), поэтому он не должен выполняться под защитой RCU.

Блокировка RCU здесь не требуется. Функция mem_cgroup_iter() внутренне использует RCU и возвращает указатель на мемкг с захваченной ссылкой css (которая освобождается при следующей итерации или функцией mem_cgroup_iter_break()), поэтому объект мемкг остается валидным без дополнительной блокировки RCU. Сам shrinker удерживается открытым файлом debugfs: функция shrinker_free() удаляет записи из debugfs через debugfs_remove_recursive(), которая ожидает завершения всех активных читателей, прежде чем вызвать call_rcu(..., shrinker_free_rcu_cb). Близкий обработчик «scan» уже вызывает блокируемый обратный вызов ->scan_objects() без использования секции RCU.

Удалены вызовы rcu_read_lock()/rcu_read_unlock().

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

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

Linux

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

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383225

EPSS

0.00173

KEV

Нет

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

Низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!