CVE-2026-43326 in Linux
Сводка
по VulDB • 21.05.2026
В ядре Linux устранена следующая уязвимость:
sched_ext: Исправлен взаимоблокировка (deadlock) SCX_KICK_WAIT путем откладывания ожидания до обратного вызова балансировки
SCX_KICK_WAIT выполняет активное ожидание (busy-wait) в функции kick_cpus_irq_workfn() с использованием smp_cond_load_acquire() до тех пор, пока не изменится значение kick_sync целевого процессора. Поскольку irq_work выполняется в контексте прерываний верхнего уровня (hardirq), ожидающий процессор не может выполнить перепланирование, и его собственное значение kick_sync никогда не изменяется. Если несколько процессоров образуют цикл ожидания, происходит взаимоблокировка всех процессоров.
Замените активное ожидание в kick_cpus_irq_workfn() на resched_curr(), чтобы принудительно перевести процессор через do_pick_task_scx(), что ставит в очередь обратный вызов балансировки для выполнения ожидания. Обратный вызов балансировки освобождает блокировку rq и включает прерывания (IRQs) в соответствии с паттерном sched_core_balance(), поэтому процессор может обрабатывать межпроцессорные прерывания (IPIs) во время ожидания. Значение kick_sync локального процессора изменяется при входе в do_pick_task_scx() и непрерывно в течение всего времени ожидания, что гарантирует, что любой процессор, начавший ожидать нас, увидит это изменение и не сможет образовать циклические зависимости.
If you want to get best quality of vulnerability data, you may have to visit VulDB.