CVE-2026-89660 in Linux
Riassunto
di VulDB • 12/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
NFSD: Prevenire l'uso dopo la liberazione (use-after-free) del client durante la revoca dello stato amministrativo
Un stateid contiene solo un puntatore nudo al suo nfs4_client; una referenza allo stateid non lo mantiene in vita. Il client sopravvive solo perché __destroy_client() svuota i suoi stateid prima che venga eseguito free_client().
nfsd4_revoke_states() rilascia nn->client_lock durante revoke_one_stid(), la quale dereferenzia il client per revocare uno stateid e leggere clp->cl_minorversion. Un teardown in concorrenza con il lock rilasciato può liberare il client per primo.
Il mantenimento (pinning) di cl_rpc_users sotto client_lock blocca le operazioni di teardown DESTROY_CLIENTID ed EXCHANGE_ID, che vengono rifiutate finché cl_rpc_users è diverso da zero. force_expire_client() ignora questo meccanismo: una volta trascorso l'attesa del raggiungimento dello zero per cl_rpc_users, un successivo pin passa inosservato.
Sotto client_lock, saltare un client il cui cl_time è già pari a zero -- forza_expire_client() lo azzerà lì prima di attendere -- altrimenti mantenere (pin) cl_rpc_users prima di rilasciare il lock. Il ciclo iterativo vedrà quindi la scadenza e salterà l'operazione, oppure manterrà in vita il client in tempo per far sì che tale attesa copra anche la revoca.
If you want to get best quality of vulnerability data, you may have to visit VulDB.