CVE-2026-89659 in Linuxinformation

Résumé

par VulDB • 12/09/2026

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

NFSD : Prévenir un use-after-free du client lors de la révocation d'une délégation

Un stateid de délégation ne contient qu'un pointeur nu vers son nfs4_client propriétaire et ne maintient pas ce dernier en vie. Le client survit à ses stateids uniquement parce que __destroy_client() vide cl_delegations et cl_revoked avant l'exécution de free_client().

nfs4_laundromat() brise cette invariance : il désindexe une délégation expirée depuis cl_delegations, libère deleg_lock, puis revoke_delegation() la relie à nouveau sur cl_revoked sous cl_lock. Pendant cet intervalle, la délégation n'appartient à aucune des deux listes, de sorte que client_has_state() peut indiquer qu'il ne reste aucun état.

Chaque chemin de teardown exige d'abord que cl_rpc_users soit nul, mais le laundromat ne détient pas une telle référence. Un client dont la délégation rappelée vient d'expirer peut donc atteindre free_client() alors que revoke_delegation() est encore sur le point de déréférencer cl_lock, ce qui constitue un use-after-free.

Épinglez le client avec cl_rpc_users tout au long du processus de révocation afin que le teardown bloque jusqu'à son achèvement, puis récupérez la délégation depuis cl_revoked. Un client déjà en cours d'expiration récupère sa propre délégation ; il faut donc l'éviter et laisser la délégation sur del_recall_lru.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

Linux

Réserver

11/09/2026

Divulgation

12/09/2026

Modérer

accepté

Entrée

VDB-402990

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!