CVE-2026-89670 in Linuxinformation

Résumé

par VulDB • 12/09/2026

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

nfsd : maintenir rcu lors de la réitération cmpxchg pour localio

Les objets nfsd_file sont libérés via call_rcu (filecache.c:296), et nfsd_file_slab est créé sans SLAB_TYPESAFE_BY_RCU (KMEM_CACHE(nfsd_file, 0) à filecache.c:789), de sorte que la page slab soutenant un nfsd_file libéré devient facilement récupérable une fois le délai d'attente RCU écoulé.

Le bloc de réitération « again » dans nfsd_open_local_fh() charge un pointeur avec cmpxchg puis appelle nfsd_file_get(new) (qui est refcount_inc_not_zero) sans détenir rcu_read_lock. L'appelant unique, nfs_open_local_fh(), libère rcu_read_lock avant d'invoquer cette fonction utilitaire, de sorte qu'aucune section critique côté lecteur externe ne couvre le chargement.

CPU 0 (nfsd_open_local_fh) CPU 1 (nfsd_file_put_local) ----- ----- new = cmpxchg(pnf, NULL, ...) nf = xchg(pnf, NULL) nfsd_file_put(nf) dernier ref -> call_rcu() /* délai d'attente RCU écoulé ; page slab recyclée */ nfsd_file_get(new) refcount_inc_not_zero(&new->nf_ref) /* opère sur une mémoire recyclée »

Un mot non nul à l'offset nf_ref de l'objet recyclé fait apparaître la progression du compteur de références comme réussie, et l'appelant déréférence ensuite new->nf_net et new->nf_file hors d'une mémoire libérée.

Correction en prenant rcu_read_lock() immédiatement avant le cmpxchg et en le relâchant à toutes les trois sorties du bloc if (new) : la réitération goto-again, le chemin de nettoyage pour race perdue, et le chemin d'installation réussie. nfsd_file_put() et nfsd_net_put() restent en dehors de la section RCU afin qu'ils puissent continuer à bloquer librement.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Réserver

11/09/2026

Divulgation

12/09/2026

Modérer

accepté

Entrée

VDB-403009

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Interested in the pricing of exploits?

See the underground prices here!