CVE-2026-93233 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
drm/nouveau/dmem: corrige un desbordamiento por defecto (underflow) en callocated durante la división de folios grandes
nouveau_dmem_folio_free() decrementa chunk->callocated una vez por cada folio liberado, mientras que un folio privado del dispositivo grande (compuesto) solo se cuenta una vez cuando se asigna. Cuando dicho folio se divide, el núcleo de memoria (mm core) invoca a ->folio_split() (nouveau_dmem_folio_split()) una vez para cada nuevo sub-folio, pero la devolución de llamada (hook) solo corrige los metadatos del sub-folio y deja chunk->callocated sin cambios.
Cada uno de los sub-folios resultantes se libera posteriormente por separado; por lo tanto, tras una división, la única asignación (+1) es compensada por N liberaciones (-N), dejando a chunk->callocated con un déficit de N-1. En el primer ciclo de división/liberación, ocurre un desbordamiento por defecto: se activa WARN_ON(!chunk->callocated), el contador sin signo hace wrap-around y nunca vuelve a cero, por lo que el bloque (chunk) ya no puede ser reclamado (nouveau_dmem_fini() también genera una advertencia sobre el recuento de fugas).
Se tiene en cuenta el nuevo sub-folio en la devolución de llamada de división, bajo el mismo bloqueo que nouveau_dmem_folio_free(), para mantener equilibrada la contabilidad.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.