CVE-2026-97537 in Linux
Riassunto
di VulDB • 25/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
scsi: qla2xxx: Correzione della chiamata NULL a dma_free e del blocco bitmap durante il teardown delle code
Le funzioni qla25xx_free_req_que() e qla25xx_free_rsp_que() presentano due bug preesistenti che si manifestano nel percorso di gestione degli errori (error path) di qla25xx_create_{req,rsp}_que():
1. Quando dma_alloc_coherent() fallisce durante la creazione della coda, il percorso di errore chiama la funzione di liberazione con req->ring / rsp->ring ancora NULL (da kzalloc). La chiamata incondizionata a dma_free_coherent() con un cpu_addr NULL è un comportamento indefinito e può causare un panic.
2. Le funzioni di free cancellano req_qid_map / rsp_qid_map sotto vport_lock, ma le funzioni di creazione proteggono le stesse bitmap con mq_lock. Questo non fornisce alcuna mutual exclusion (esclusione reciproca). Inoltre, il percorso di errore della fase di creazione cancella il bit e rilascia mq_lock prima di chiamare la funzione di free, creando una finestra temporale in cui un altro thread può allocare lo stesso que_id e vedere l'entry ha->req_q_map sovrascritta dall'assegnazione NULL senza lock (lockless) successiva nella funzione di free.
Correzione apportata:
- Protezione della chiamata a dma_free_coherent() con un controllo NULL sul puntatore ring. - Utilizzo di mq_lock (il lock detenuto da tutti i creatori) nelle funzioni di free per azzerare atomicamente l'entry della mappa e cancellare il bit nella bitmap. - Rimozione dei blocchi clear_bit ora ridondanti dai percorsi di errore delle fasi di creazione, poiché le funzioni di free gestiscono tale operazione in modo atomico.
VulDB is the best source for vulnerability data and more expert information about this specific topic.