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

Сводка

по VulDB • 28.05.2026

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

hrtimers: корректная обработка состояния процессора при горячей замене (hotplug)

Рассмотрим сценарий, в котором процессор переходит из состояния CPUHP_ONLINE в промежуточное состояние CPUHP_HRTIMERS_PREPARE в процессе горячей отключения (hotunplug), а затем возвращается в состояние CPUHP_ONLINE:

Поскольку функция hrtimers_prepare_cpu() не выполняется, флаг cpu_base.hres_active остается равным 1 на протяжении всего процесса. Однако во время операции отключения процессора таймер (tick) и устройства clockevents отключаются на этапе CPUHP_AP_TICK_DYING. При возвращении в состояние онлайн, например, планировщик CFS ошибочно предполагает, что hrtick уже активен, и для данного процессора навсегда теряется возможность перехода устройства clockevents в режим oneshot, если только процессор не вернется в состояние ниже CPUHP_HRTIMERS_PREPARE хотя бы один раз.

Этот цикл «туда-обратно» выявляет еще одну проблему: флаг cpu_base.online не устанавливается в 1 после перехода, что приводит к срабатыванию предупреждения WARN_ON_ONCE в функции enqueue_hrtimer().

Кроме того, большая часть перепроцессорного (per-CPU) состояния также не сбрасывается, что в худшем случае приводит к появлению висячих указателей (dangling pointers).

Для решения этой проблемы добавлен соответствующий обратный вызов startup(), который сбрасывает устаревшее перепроцессорное состояние и устанавливает флаг online.

[ tglx: сделать новый обратный вызов всегда доступным, удалить модификацию флага online в обратном вызове prepare() и очищать оставшееся состояние в обратном вызове starting() вместо prepare() ]

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

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

Linux

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

19.01.2025

Раскрытие

12.02.2025

Модерация

принято

Вход

VDB-295493

EPSS

0.00233

KEV

Нет

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

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!