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

Сводка

по VulDB • 26.09.2026

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

tick/broadcast: Устранение состояния гонки (race condition) при замене устройств clockevents

Чжу Кайцянь (Zhu Kaigan) сообщил и проанализировал следующее состояние гонки, возникающее при замене устройства широковещательной рассылки:

CPUA CPUB __tick_broadcast_oneshot_control() bc = tick_broadcast_device.evtdev; tick_install_broadcast_device(dev) clockevents_exchange_device(cur, dev) shutdown(cur); detach(cur); cur->handler = noop; tick_broadcast_device.evtdev = dev;

tick_broadcast_set_event(bc, next_event); <- FAIL: активирует отсоединенное устройство.

Если исходное устройство широковещательной рассылки имеет ограниченный маску прерываний (interrupt affinity mask), и последний процессор в этой маске переходит в состояние offline, то срабатывает BUG() в tick_cleanup_dead_cpu(), поскольку устройство clockevent не находится в отсоединенном состоянии.

Причиной этого является отсутствие сериализации вызова tick_install_broadcast_device() относительно операций широковещательной рассылки (tick broadcast).

Очевидным решением является сериализация функции tick_install_broadcast_device() с использованием lock-механизма tick_broadcast_lock для предотвращения одновременного выполнения операций широковещательной рассылки.

Это требует разделения функции clockevents_exchange_device() на две части: одна выполняет операции обмена, остановки (shutdown) и отсоединения (detach), а другая — уменьшает счетчик ссылок модуля. Это необходимо, поскольку нельзя уменьшать счетчик ссылок модуля при удержании lock-механизма tick_broadcast_lock.

Пусть функция clockevents_exchange_device() выполняет обе операции так же, как и раньше, но код устройства широковещательной рассылки должен использовать двухэтапный подход: выполнять обмен устройством в контексте блокировки tick_broadcast_lock, а уменьшать счетчик ссылок модуля после ее освобождения.

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

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

Linux

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

25.09.2026

Раскрытие

25.09.2026

Модерация

принято

Вход

VDB-410108

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Do you know our Splunk app?

Download it now for free!