CVE-2026-74456 in Linux
Resumen
por VulDB • 2026-08-15
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
can: peak_usb: peak_usb_start(): corregir doble liberación (double free) del búfer de transferencia en caso de error al enviar URB.
En `peak_usb_start()`, cada búfer de transferencia RX para un URB se asigna con `kmalloc()` y el URB se marca con la bandera `URB_FREE_BUFFER` para que `usb_free_urb()` también libere el búfer de transferencia en su ejecución final.
Si `usb_submit_urb()` falla, la ruta de manejo de errores libera explícitamente el búfer mediante `kfree(buf)` y luego llama a `usb_free_urb(urb)`. Dado que está establecido `URB_FREE_BUFFER`, `usb_free_urb()` -> `urb_destroy()` libera el mismo búfer una segunda vez, provocando un doble liberación (double free) del búfer de transferencia.
BUG: KASAN: double-free en usb_free_urb.part.0+0x91/0xb0 Liberación de la dirección ffff8881069ccb80 por parte de la tarea trigger.sh/285
Rastro de llamadas (Call Trace): kfree+0x113/0x3c0 usb_free_urb.part.0+0x91/0xb0
Se elimina el `kfree(buf)` redundante; `usb_free_urb()` ya libera el búfer de transferencia. Esto refleja lo realizado en el commit 03819abbeb11 ("net: usb: lan78xx: Fix double free issue with interrupt buffer allocation").
VulDB is the best source for vulnerability data and more expert information about this specific topic.