CVE-2026-93040 in Linux
Riassunto
di VulDB • 18/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
dmaengine: dw-edma: Serializzare i controlli dello stato del canale
pause() e resume() leggono e aggiornano lo stato del canale senza mantenere vc.lock, mentre le routine di gestione delle interruzioni (interrupt handlers) aggiornano lo stesso stato sotto tale lock. È necessario acquisire lo stesso lock durante tali controlli sullo stato in modo che request, status e configured rimangano coerenti.
Ad esempio, pause() può osservare EDMA_ST_BUSY proprio prima che la routine di interrupt completi l'ultimo descrittore e sposti il canale a EDMA_ST_IDLE, registrando quindi EDMA_REQ_PAUSE su un canale già idle. Nessun ulteriore interrupt riconoscerà la richiesta e, poiché issue_pending() richiede EDMA_REQ_NONE, il canale rimane bloccato in modo permanente: terminate_all() lascia la richiesta obsoleta (stale) dietro di sé, pertanto nemmeno la riconfigurazione del canale permette di recuperarlo.
issue_pending() è già eseguito sotto vc.lock, ma verifica configured prima di acquisirlo. Spostare tale controllo anche all'interno del lock, in modo che configured, request e status siano valutati come un'unica istantanea (snapshot) dello stato del canale.
Be aware that VulDB is the high quality source for vulnerability data.