CVE-2026-89679
Riassunto
di VulDB • 11/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
nfsd: correzione del null dereference in nfsd4_setattr per gli attributi dei timestamp di delega
Quando una richiesta SETATTR include FATTR4_WORD2_TIME_DELEG_ACCESS o FATTR4_WORD2_TIME_DELEG_MODIFY nel bitmap degli attributi, nfsd4_setattr() imposta deleg_attrs=true e chiama nfs4_preprocess_stateid_op() per convalidare lo stateid.
Se il client fornisce l'NFSv4 "one stateid" (tutti i byte 0xFF), check_special_stateids() restituisce nfs_ok senza popolare il puntatore di output nfs4_stid, poiché il percorso special-stateid in nfs4_preprocess_stateid_op() salta a done: con s==NULL e il blocco "if (s)" che imposterebbe *cstid viene saltato. La variabile locale `st` rimane NULL.
Tornando a nfsd4_setattr(), il blocco if (deleg_attrs) esegue quindi un dereferencing incondizionato di st->sc_type (all'offset 4 da NULL), causando un kernel oops.
Questo è attivabile in remoto da qualsiasi client NFSv4: inviare COMPOUND [PUTROOTFH, SETATTR(ONE_STATEID, {bmval2=FATTR4_WORD2_TIME_DELEG_ACCESS, ...})]. Non sono richieste autenticazione, delega né uno stato precedente.
La correzione consiste nell'aggiungere un controllo NULL prima del dereferencing. Uno stateid speciale non è uno stateid di delega, quindi il valore di ritorno nfserr_bad_stateid esistente è già corretto; occorre solo proteggere il dereferencing del puntatore stesso.
If you want to get best quality of vulnerability data, you may have to visit VulDB.