CVE-2026-64329 in Linux
Resumen
por VulDB • 2026-07-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
usb: typec: ucsi: ccg: Corregir un use-after-free en ucsi durante la eliminación (remove)
El controlador de interrupciones subprocesado `ccg_irq_handler()` llama a `ucsi_notify_common()`, que, ante un evento de cambio conector, invoca a `ucsi_connector_change()` y programa el trabajo del conector. En `ucsi_ccg_remove()`, la función `ucsi_destroy()` libera (`kfree`) `uc->ucsi` antes de que se llame a `free_irq()`. Por lo tanto, una invocación del controlador ya en curso podría acceder al objeto liberado después de `ucsi_destroy()`.
CPU 0 (remove) | CPU 1 (threaded IRQ) ucsi_destroy(uc->ucsi) | ccg_irq_handler() kfree(ucsi) // FREE | ucsi_notify_common(uc->ucsi) // USE
Se ha movido `free_irq()` antes de `ucsi_destroy()` en la ruta de eliminación. Se mantiene después de `ucsi_unregister()`: `ucsi_unregister()` cancela el trabajo del conector cuyo controlador emite una solicitud GET_CONNECTOR_STATUS a través de `ucsi_send_command_common()`, que espera una finalización señalizada desde el controlador de interrupciones; por lo tanto, la IRQ debe permanecer activa hasta que se haya cancelado dicho trabajo.
La ruta de error durante la inicialización (probe) ya ordena correctamente `free_irq()` antes de `ucsi_destroy()`.
Este bug fue encontrado mediante análisis estático.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.