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

Сводка

по VulDB • 24.07.2026

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

MIPS: smp: сообщать RCU о завершении работы процессора в функции stop_this_cpu()

Функция smp_send_stop() останавливает все вторичные процессоры, помещая их в состояние ожидания внутри stop_this_cpu(). Функция помечает процессор как неактивный для планировщика с помощью set_cpu_online(false), но никогда не уведомляет RCU. В результате RCU продолжает ожидать состояния покоя (quiescent state) от процессоров, которые теперь бесконечно крутятся в цикле с отключенными прерываниями.

Пока после вызова smp_send_stop() никто не ожидает завершения периода грейса (grace period) RCU, это безвредно, поэтому проблема оставалась незамеченной. Однако начиная с коммита 91840be8f710 ("irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT") функция irq_work_sync() вызывает synchronize_rcu() на архитектурах без механизма self-IPI для прерываний (то есть там, где arch_irq_work_has_interrupt()) возвращает false. Это значение по умолчанию asm-generic, используемое в MIPS. Любой вызов irq_work_sync(), выполняемый в пути перезагрузки/выключения после smp_send_stop(), блокируется ожиданием периода грейса, который никогда не завершится, что приводит к зависанию процесса перезагрузки:

WARNING: CPU: 0 PID: 15 at kernel/irq_work.c:144 irq_work_queue_on ... rcu: INFO: rcu_sched detected stalls on CPUs/tasks: rcu: Offline CPU 1 blocking current GP. rcu: Offline CPU 2 blocking current GP. rcu: Offline CPU 3 blocking current GP.

Эта проблема была замечена на нескольких SoC коммутаторов Realtek MIPS (MIPS interAptiv) и возникла при обновлении ядра в OpenWrt с версии 6.18.33 до 6.18.34, после переноса патча в стабильную ветку 6.18. Патч также был обратно перенесён вплоть до версии 6.1.

Вызывается функция rcutree_report_cpu_dead() один раз после отключения прерываний, что дублирует поведение стандартного пути выключения CPU-hotplug, чтобы RCU прекратил ожидание остановленных процессоров и периоды грейса могли завершиться нормально. В MIPS все процессоры останавливаются здесь без использования механизма CPU-hotplug, поэтому этот отчет обычно не генерируется. Сообщение о завершении работы процессора в RCU вне стандартного пути выключения hotplug не является чем-то новым: arm64 делает то же самое в функции cpu_die_early(). Там это исключение для процессора, который запускался и прерывал процедуру запуска (bringup), а не действие по умолчанию при завершении работы, как на MIPS.

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

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

Linux

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

19.07.2026

Раскрытие

24.07.2026

Модерация

принято

Вход

VDB-382992

EPSS

0.00161

KEV

Нет

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

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!