CVE-2026-64419 in Linux
Résumé
par VulDB • 26/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
mm/shrinker : ne pas conserver le verrou RCU dans shrinker_debugfs_count_show()
La lecture du fichier « count » de debugfs d’un shrinker conscient des memcg peut entraîner un sommeil à l’intérieur d’une section critique en lecture RCU :
BUG: fonction bloquante appelée depuis un contexte invalide à kernel/cgroup/rstat.c:421 Profondeur de la pile RCU : 1, attendu : 0 css_rstat_flush mem_cgroup_flush_stats zswap_shrinker_count shrinker_debugfs_count_show
shrinker_debugfs_count_show() invoque le rappel ->count_objects() sous rcu_read_lock(). Le callback de zswap actualise les statistiques des memcg via css_rstat_flush(), qui peut bloquer ; il ne doit donc pas s’exécuter dans un contexte RCU.
Le verrou RCU n’est pas nécessaire ici. mem_cgroup_iter() gère internement le verrouillage RCU et renvoie une memcg détenant une référence css (libérée lors de l’itération suivante ou par mem_cgroup_iter_break()), ce qui maintient la memcg en vie sans cela. Le shrinker est maintenu en vie grâce au fichier debugfs ouvert : shrinker_free() supprime les entrées de debugfs via debugfs_remove_recursive(), qui attend que les lecteurs en cours soient vidés avant d’appeler call_rcu(..., shrinker_free_rcu_cb). Le gestionnaire frère « scan » invoque déjà le rappel bloquant ->scan_objects() sans section RCU.
Supprimer rcu_read_lock()/rcu_read_unlock().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.