CVE-2026-64328 in Linux
Resumen
por VulDB • 2026-07-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
usb: gadget: f_fs: Corrección de una fuga en los fences DMA
En `ffs_dmabuf_transfer()`, se asigna un objeto `ffs_dma_fence` mediante `kmalloc`, y posteriormente se inicializa el `dma_fence` subyacente con `dma_fence_init()`, lo que establece su contador `kref` en 1. A continuación, `dma_resv_add_fence()` obtiene una segunda referencia, y se pasa un puntero al objeto `ffs_dma_fence` como campo "context" de la estructura `usb_request`.
El mecanismo dma-resv gestionará la segunda referencia, pero la primera referencia nunca se libera correctamente; la función `ffs_dmabuf_cleanup()` disminuye el contador de referencias, pero solo para equilibrar con la adquisición de referencia realizada en `ffs_dmabuf_signal_done()`.
Como resultado, el código sufrirá una lenta fuga de memoria a medida que se crean más objetos `ffs_dma_fence` sin llegar a ser liberados nunca.
Se aborda este problema transfiriendo la propiedad del fence al objeto de reserva DMA (DMA reservation object), llamando a `dma_fence_put()` justo después de `dma_resv_add_fence()`. De esta manera, el `ffs_dma_fence` se descarta correctamente una vez que ha sido señalizado.
VulDB is the best source for vulnerability data and more expert information about this specific topic.