CVE-2026-64248 in Linuxinformation

Résumé

par VulDB • 25/07/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

MIPS: smp: signaler au RCU l'arrêt du CPU dans stop_this_cpu()

smp_send_stop() met en pause tous les CPUs secondaires dans stop_this_cpu(). La fonction marque le CPU comme hors ligne pour le planificateur via set_cpu_online(false), mais n'en informe jamais le RCU. Par conséquent, le RCU continue d'attendre un état de quiescence provenant des CPUs qui tournent désormais indéfiniment avec les interruptions désactivées.

Tant que rien n'attend une période de grâce (grace period) du RCU après l'appel à smp_send_stop(), cela est inoffensif, ce qui explique pourquoi le problème est passé inaperçu. Depuis le commit 91840be8f710 ("irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT"), cependant, irq_work_sync() appelle synchronize_rcu() sur les architectures dépourvues d'un auto-IPI pour irq_work, c'est-à-dire celles où arch_irq_work_has_interrupt() retourne false. Il s'agit de la valeur par défaut asm-generic utilisée par MIPS. Toute invocation de irq_work_sync() dans le chemin de redémarrage/arrêt après smp_send_stop() bloque alors sur une période de grâce qui ne peut jamais se terminer, entraînant un blocage du processus de redémarrage :

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.

Ce problème a été identifié sur plusieurs SoCs de commutation Realtek MIPS (MIPS interAptiv) et est apparu lors d'une mise à jour du noyau en aval dans OpenWrt, passant de la version 6.18.33 à la 6.18.34, après le rétroportage du correctif vers la branche stable 6.18. Le correctif a également été rétroporté jusqu'à la version 6.1.

Appeler rcutree_report_cpu_dead() une fois les interruptions désactivées, en imitant le chemin hors ligne générique de gestion dynamique des CPUs (CPU-hotplug), permet au RCU d'arrêter d'attendre les CPUs mis en pause et aux périodes de grâce de se terminer correctement. MIPS éteint tous ses CPU ici sans passer par le mécanisme standard de hotplug, ce rapport n'est donc pas émis autrement. Signaler un CPU mourant au RCU en dehors du chemin hors ligne régulier de gestion dynamique des CPUs n'a rien d'inédit : arm64 effectue la même opération dans cpu_die_early(). Dans ce cas précis (arm64), il s'agit d'une exception pour un CPU qui tentait de se mettre en ligne et annule son initialisation, plutôt que l'action d'arrêt par défaut observée sur MIPS.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

Linux

Réserver

19/07/2026

Divulgation

24/07/2026

Modérer

accepté

Entrée

VDB-382992

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Do you need the next level of professionalism?

Upgrade your account now!