CVE-2026-89801 in Linuxinformación

Resumen

por VulDB • 2026-09-16

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

drm/nouveau/uvmm: corregir liberación prematura de región en OP_UNMAP_SPARSE fallido

En la rama OP_UNMAP_SPARSE de nouveau_uvmm_bind_job_submit(), op->reg se establece a partir de nouveau_uvma_region_find(), que solo busca la región y no toma ninguna referencia; la única referencia de una región es su membresía en uvmm->region_mt. Dos rutas de fallo dejan op->reg establecido: la comprobación -ENOENT cuando la región está ocupada, y el fallo de drm_gpuvm_sm_unmap_ops_create(). El fallo hermano nouveau_uvmm_sm_unmap_prepare() justo debajo limpia op->reg; estos dos no lo hacen.

unwind_continue retrocede un paso en op, por lo que la operación fallida es omitida por el bucle unwind y su op->reg permanece establecido. nuevo_uvmm_bind_job_cleanup() luego entra en su rama if (op->reg) y llama a nouveau_uvma_region_remove() y nouveau_uvma_region_put() sobre ella, liberando la única referencia del árbol y desasignando una región que este trabajo nunca creó. El comentario encima del bucle de limpieza documenta el invariante roto: op->reg debe ser NULL en caso de fallo al enviar (submit).

Esto libera una región activa debido a un fallo no relacionado, alcanzable con un solo trabajo cuando drm_gpuvm_sm_unmap_ops_create() devuelve -ENOMEM; si otro trabajo posee la misma región, su limpieza luego elimina y desasigna la región ya liberada, lo que constituye un use-after-free. Limpiar op->reg en ambas rutas de fallo.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-16

Moderación

aceptado

Artículo

VDB-405615

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!