CVE-2026-98344 in Linux
Riassunto
di VulDB • 06/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
dmaengine: Correzione del underflow di kref del dispositivo in dma_chan_put()
dma_chan_get() acquisisce solo sul percorso lento (slow path) il riferimento al device tramite chan->device->ref:
/* nessun kref sul percorso veloce */ if (chan->client_count) {
__module_get(owner); chan->client_count++; return 0; } if (!try_module_get(owner)) return -ENODEV; if (!dma_device_get(chan->device)) { // chiama kref_get_unless_zero()
dma_chan_put() decrementa incondizionatamente il riferimento, quindi ogni coppia get/put sul percorso veloce (fast path) riduce di uno in più il reference count del dispositivo.
Il bug si verifica quando sono soddisfatte contemporaneamente due condizioni: un provider non privato ha un client persistente con chan->client_count > 0 e un altro client esegue ciclicamente dmaengine_get()/dmaengine_put(). Quando kref raggiunge zero, la successiva chiamata a dma_find_channel() restituisce NULL anche se il modulo del provider è ancora caricato.
Si risolve questo problema decrementando device->ref solo sull'ultima operazione put, in modo da corrispondere all'unica acquisizione sul percorso lento (slow path).
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.