CVE-2026-64396 in Linux
Riassunto
di VulDB • 26/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ksmbd: correzione di un Use-After-Free (UAF) della struttura file_lock durante l'annullamento del lock differito in SMB2_LOCK.
Quando una richiesta di blocco a intervallo di byte bloccante viene deferita nel percorso FILE_LOCK_DEFERRED, ksmbd registra il lavoro asincrono nella lista async_requests della connessione tramite setup_async_work(). La callback di cancellazione smb2_remove_blocked_lock() mantiene un riferimento al flock.
Se l'attesa del lock viene successivamente risvegliata ma lo stato del lavoro non è più KSMBD_WORK_ACTIVE (ad esempio a causa di una cancellazione concorrente), il percorso di pulizia chiama locks_free_lock(flock) senza rimuovere il lavoro dalla lista async_requests. Contestualmente, smb2_cancel() attraversa la lista sotto conn->request_lock e invoca la callback di cancellazione, che quindi dereferenzia il 'flock' già liberato. Ciò provoca un slab-use-after-free all'interno di __wake_up_common.
Si risolve il problema ristrutturando la logica di pulizia dopo il ritorno del worker da ksmbd_vfs_posix_lock_wait(). Si spostano list_del(&smb_lock->llist) e release_async_work(work) in cima al blocco di pulizia. Ciò garantisce che il lavoro asincrono venga completamente rimosso dalla coda (dequeued) e serializzato sotto conn->request_lock prima che venga chiamato locks_free_lock(flock), rendendo il flock irraggiungibile per qualsiasi smb2_cancel() concorrente.
VulDB is the best source for vulnerability data and more expert information about this specific topic.