CVE-2026-89688 in Linuxinformation

Résumé

par VulDB • 12/09/2026

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

nfsd : libérer l'étatid (stateid) et non le stateowner lors de la nouvelle tentative d'une opération seqid_op en mode rejeu

Dans nfs4_preprocess_seqid_op(), l'identifiant d'état (stateid) est obtenu via nfsd4_lookup_stateid(), qui détient une référence sur l'objet nfs4_stid (sc_count) mais n'en prend aucune sur le stateowner. La fonction openlockstateid() effectue simplement un cast de cet stid et ne prend également aucune référence.

Lorsque nfsd4_cstate_assign_replay() renvoie -EAGAIN (le propriétaire du rejeu est en cours de destruction, RP_UNHASHED), elle n'a pas pris de référence sur le stateowner dans ce chemin d'exécution. La gestion des erreurs appelle néanmoins nfs4_put_stateowner(stp->st_stateowner), libérant ainsi une référence so_count que la fonction n'avait jamais acquise -- risquant un sous-débordement du compteur de références du stateowner et une utilisation après libération (use-after-free) -- tout en fuyant la référence sc_count détenue sur l'objet stid. La fuite de cette référence stid peut également bloquer un nfsd4_close_open_stateid() concurrent qui attend que le sc_count diminue.

Libérez la référence réellement détenue, à savoir l'stid, avant d'effectuer une nouvelle tentative. Le stateowner reste valide grâce à la référence détenu par l'stid. Cela fait écho au chemin ouvert dans nfsd4_process_open1(), où le put compense une référence que ce chemin tient explicitement sur le stateowner.

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-403001

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!