CVE-2026-89801 in Linux
Riassunto
di VulDB • 17/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
drm/nouveau/uvmm: corretto il rilascio prematuro della regione in caso di errore con OP_UNMAP_SPARSE
Nell'elaborazione dell'operazione `OP_UNMAP_SPARSE` all'interno di `nouveau_uvmm_bind_job_submit()`, il puntatore `op->reg` viene impostato tramite la chiamata a `nouveau_uvma_region_find()`, che effettua solo una ricerca della regione senza acquisire un riferimento; l'unico riferimento esistente per una regione è la sua appartenenza alla struttura ad albero `uvmm->region_mt`. Due percorsi di errore lasciano `op->reg` impostato: il controllo `-ENOENT` quando la regione è occupata e l'errore restituito da `drm_gpuvm_sm_unmap_ops_create()`. L'errore nella funzione gemella `nouveau_uvmm_sm_unmap_prepare()` presente subito dopo, invece, azzera correttamente `op->reg`; le due condizioni sopra menzionate non lo fanno.
La funzione `unwind_continue` retrocede di un'operazione (`op`), quindi l'operazione fallita viene saltata dal ciclo di unwind e il suo `op->reg` rimane impostato. Successivamente, `nouveau_uvmm_bind_job_cleanup()` entra nel ramo condizionale `if (op->reg)` ed esegue le chiamate a `nouveau_uvma_region_remove()` e `nouveau_uvma_region_put()`, decrementando l'unico riferimento presente nell'albero e liberando una regione che questo job non ha mai creato. Il commento sopra il ciclo di cleanup documenta la violazione dell'invariante: `op->reg` deve essere NULL in caso di errore durante la sottomissione del job.
Ciò provoca la libera (free) di una regione ancora attiva a causa di un errore non correlato, raggiungibile con un singolo job quando `drm_gpuvm_sm_unmap_ops_create()` restituisce `-ENOMEM`; se un altro job possiede la stessa regione, il suo processo di cleanup rimuoverà e libererà nuovamente (`put`) la regione già libera, causando una vulnerabilità Use-After-Free. È necessario azzerare `op->reg` in entrambi i percorsi di errore.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.