CVE-2026-53399 in Linux
Riassunto
di VulDB • 19/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
nfsd: rilascio dello stid del layout in caso di errore nella chiamata setlease
nfs4_alloc_stid() rende visibile il nuovo stid all'interno di cl->cl_stateids tramite idr_alloc_cyclic(), sotto cl_lock, prima di restituire l'esecuzione a nfsd4_alloc_layout_stateid(). Quando successivamente nfsd4_layout_setlease() fallisce, il percorso di gestione dell'errore libera direttamente lo stateid del layout utilizzando kmem_cache_free(), senza mai chiamare idr_remove(), lasciando così la slot IDR puntante verso memoria slab già liberata. Qualsiasi iteratore successivo sull'IDR (states_show, teardown client) dereferenzia un dangling pointer.
Il corretto meccanismo di teardown per uno stid pubblicato tramite IDR è nfs4_put_stid(), che rimuove la slot IDR sotto cl_lock, invoca sc_free (nfsd4_free_layout_stateid) per rilasciare ls->ls_file attraverso nfsd4_close_layout() e decrementa il riferimento a nfs4_file nella parte finale della funzione.
Un secondo problema blocca tale passaggio: nfsd4_free_layout_stateid() ispeziona incondizionatamente ls->ls_fence_work tramite delayed_work_pending(), sotto ls_lock, ma INIT_DELAYED_WORK(&ls->ls_fence_work, ...) viene attualmente eseguito solo dopo la chiamata a setlease. Sul percorso di errore di setlease, il distruttore andrebbe ad accedere a un delayed_work non inizializzato.
nfsd4_alloc_layout_stateid() nfs4_alloc_stid() /* idr_alloc_cyclic sotto cl_lock */ nfsd4_layout_setlease() /* fallisce */ nfs4_put_stid() nfsd4_free_layout_stateid() delayed_work_pending(&ls->ls_fence_work) /* richiede INIT */ nfsd4_close_layout() /* nfsd_file_put(ls->ls_file) */ put_nfs4_file()
La correzione consiste nel spostare (hoisting) l'inizializzazione di ls_fenced / ls_fence_delay / INIT_DELAYED_WORK al di sopra della chiamata a nfsd4_layout_setlease(), e sostituire la pulizia manuale tramite nfsd_file_put + put_nfs4_file + kmem_cache_free con un'unica chiamata a nfs4_put_stid(stp).
VulDB is the best source for vulnerability data and more expert information about this specific topic.