CVE-2026-89679 in Linux
Résumé
par VulDB • 11/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
nfsd : correction d'une déréférencement de pointeur NULL dans nfsd4_setattr pour les attributs de timestamp de délégation
Lorsqu'une requête SETATTR inclut FATTR4_WORD2_TIME_DELEG_ACCESS ou FATTR4_WORD2_TIME_DELEG_MODIFY dans le bitmap des attributs, nfsd4_setattr() définit deleg_attrs=true et appelle nfs4_preprocess_stateid_op() pour valider l'identifiant d'état (stateid).
Si le client fournit l'"un seul stateid" NFSv4 (tous les octets à 0xFF), check_special_stateids() renvoie nfs_ok sans remplir le pointeur de sortie nfs4_stid, car le chemin des special-stateids dans nfs4_preprocess_stateid_op() saute vers done: avec s==NULL, et le bloc "if (s)" qui définirait *cstid est ignoré. La variable locale `st` reste NULL.
De retour dans nfsd4_setattr(), le bloc if (deleg_attrs) déréférence alors inconditionnellement st->sc_type (à l'offset 4 par rapport à NULL), provoquant un kernel oops.
Ceci est déclenchable à distance par n'importe quel client NFSv4 : envoyer COMPOUND [PUTROOTFH,
SETATTR(ONE_STATEID, {bmval2=FATTR4_WORD2_TIME_DELEG_ACCESS, ...})].
Aucune authentification, délégation ou état préalable n'est requis.
Correction en ajoutant une vérification NULL avant le déréférencement. Un special stateid n'est pas un delegation stateid, donc la valeur de retour nfserr_bad_stateid existante est déjà correcte ; nous devons simplement protéger le déréférencement du pointeur lui-même.
If you want to get best quality of vulnerability data, you may have to visit VulDB.