CVE-2024-56631 in Linux
Riassunto
di VulDB • 16/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
scsi: sg: Correzione di una lettura use-after-free su slab in sg_release()
Risolve un bug use-after-free in sg_release(), rilevato da syzbot con KASAN:
BUG: KASAN: slab-use-after-free in lock_release+0x151/0xa30 kernel/locking/lockdep.c:5838 __mutex_unlock_slowpath+0xe2/0x750 kernel/locking/mutex.c:912 sg_release+0x1f4/0x2e0 drivers/scsi/sg.c:407
In sg_release(), la funzione kref_put(&sfp->f_ref, sg_remove_sfp) viene chiamata prima di rilasciare il mutex open_rel_lock. La chiamata a kref_put() può decrementare il conteggio dei riferimenti di sfp a zero, innescandone la pulizia tramite sg_remove_sfp(). Questa pulizia include la pianificazione di lavoro differito tramite sg_remove_sfp_usercontext(), che alla fine libera sfp.
Dopo kref_put(), sg_release() continua a sbloccare open_rel_lock e può fare riferimento a sfp o sdp. Se sfp è già stato liberato, ciò provoca un errore slab-use-after-free.
Sposta la chiamata kref_put(&sfp->f_ref, sg_remove_sfp) dopo lo sblocco del mutex open_rel_lock. Questo garantisce:
- Nessun riferimento a sfp o sdp avviene dopo che il conteggio dei riferimenti è stato decrementato.
- Le funzioni di pulizia come sg_remove_sfp() e sg_remove_sfp_usercontext() possono essere eseguite in modo sicuro senza impattare la gestione del mutex in sg_release().
La correzione è stata testata e convalidata da syzbot. Questa patch chiude il bug segnalato nel seguente link di syzkaller e garantisce una corretta sequenza delle operazioni di pulizia delle risorse e dei mutex, eliminando il rischio di errori use-after-free in sg_release().
If you want to get best quality of vulnerability data, you may have to visit VulDB.