CVE-2026-64248 in Linux
Sumário
de VulDB • 24/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
MIPS: smp: relatar CPU moribunda ao RCU em stop_this_cpu()
smp_send_stop() coloca todas as CPUs secundárias no estado de parada dentro de stop_this_cpu(). A função marca a CPU como offline para o escalonador por meio de set_cpu_online(false), mas nunca informa o RCU, fazendo com que o RCU continue esperando um estado quiescente das CPUs que agora ficam girando indefinidamente (spinning) com as interrupções desabilitadas.
Enquanto nada aguardar um período de graça do RCU após smp_send_stop(), isso é inofensivo, razão pela qual passou despercebido. Desde o commit 91840be8f710 ("irq_work: Corrige use-after-free em irq_work_single() no PREEMPT_RT"), entretanto, irq_work_sync() chama synchronize_rcu() nas arquiteturas sem um self-IPI de irq_work, ou seja, onde arch_irq_work_has_interrupt() retorna false. Esse é o padrão asm-generic usado pelo MIPS. Qualquer chamada a irq_work_sync() emitida na rota de reinicialização/desligamento após smp_send_stop() então bloqueia em um período de graça que nunca será concluído, travando a reinicialização:
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.
Este problema foi observado em vários SoCs de switch MIPS da Realtek (MIPS interAptiv) e surgiu durante o aumento da versão do kernel no OpenWrt, de 6.18.33 para 6.18.34, após a incorporação retroativa (backport) do patch na ramificação estável 6.18. O patch também foi incorporado retroativamente até a versão 6.1.
Chame rcutree_report_cpu_dead() uma vez que as interrupções estejam desabilitadas, espelhando o caminho offline genérico de CPU-hotplug, para que o RCU pare de aguardar nas CPUs em estado de parada e os períodos de graça possam ser concluídos normalmente. O MIPS desliga todas as CPUs aqui sem passar pelo mecanismo de CPU-hotplug, portanto esse relatório não é emitido de outra forma. Relatar uma CPU moribunda ao RCU fora do caminho offline regular de hotplug não é incomum: o arm64 faz o mesmo em cpu_die_early(). Nesse caso, trata-se de uma exceção para uma CPU que estava sendo inicializada e está abortando a bringup (inicialização), em vez da ação padrão de desligamento como ocorre no MIPS.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.