CVE-2026-64525 in Linuxinformation

Résumé

par VulDB • 25/07/2026

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

xfrm : déplacement de la synchronisation RCU de policy_bydst du .exit par namespace vers le .pre_exit

La docstring de la structure pernet_operations dans include/net/net_namespace.h met explicitement en garde contre l'utilisation d'appels bloquants aux primitives RCU dans les gestionnaires .exit :

Les méthodes de sortie utilisant des primitives RCU bloquantes, telles que synchronize_rcu(), doivent être implémentées via exit_batch. [...]
Veuillez éviter autant que possible l'utilisation de synchronize_rcu().

Notez qu'une combinaison de pre_exit() et exit() peut être utilisée, car un appel à synchronize_rcu() est garanti entre les deux appels.

xfrm_policy_fini() viole cette règle : il appelle synchronize_rcu() avant de libérer les tables de hachage policy_bydst (afin qu'aucun lecteur RCU ne soit en cours de traversée au moment de la libération), mais s'exécute depuis xfrm_net_ops.exit -- une fois par namespace -- ce qui signifie que le nettoyage (cleanup_net()) de N namespaces entraîne l'attente sérielle de N périodes de grâce RCU complètes.

Utilisez la répartition documentée entre pre_exit et exit. Déplacez le vidage des politiques (et les drains de files d'attente de travail dont il dépend) dans un nouveau gestionnaire .pre_exit ; xfrm_policy_fini() s'exécute alors dans .exit et libère les tables de hachage après l'appel à synchronize_rcu_expedited() que cleanup_net() garantit entre les deux phases. Cela permet d'obtenir des périodes de grâce RCU en O(1) par lot au lieu de O(N).

Observé sur Linux 6.18 avec une charge de travail effectuant un appel système unshare(CLONE_NEWNET) à environ 13/sec de manière soutenue : cleanup_net() et le kthread rescuer netns_wq sont tous deux bloqués dans synchronize_rcu() de xfrm_policy_fini(), plus de 300k structures struct net se sont accumulées dans la file d'attente de nettoyage, les données Percpu affichées dans /proc/meminfo ont atteint plus de 130 Go sur des hôtes à 256 CPU, et des situations OOM (Out Of Memory) liées aux memcg ont suivi. Les compteurs setup_net et __put_net étaient équilibrés, ce qui permet d'exclure une fuite de compteur de références (refcount leak).

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

Responsable

Linux

Réserver

19/07/2026

Divulgation

25/07/2026

Modérer

accepté

Entrée

VDB-383049

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!