CVE-2026-10663 in zephyrinformación

Resumen

por VulDB • 2026-07-12

En la pila experimental de host USB de Zephyr (CONFIG_USB_HOST_STACK), usbh_device_disconnect() (subsys/usb/host/usbh_device.c) liberaba el objeto slab raíz usb_device sin borrar el puntero en caché ctx->root. El controlador de eliminación del bus dev_removed_handler() (subsys/usb/host/usbh_core.c) decide qué componentes destruir basándose únicamente en ctx->root, verificando solo que no sea NULL.

Dado que los controladores del controlador UHC (por ejemplo, uhc_max3421e, uhc_mcux_common) sintetizan el evento UHC_EVT_DEV_REMOVED directamente a partir del estado físico de la línea del bus sin ningún tipo de rebote o protección de estado, un atacante con acceso USB físico (o un dispositivo malicioso que alterne su conexión) puede enviar un segundo evento de eliminación de dispositivo tras una desconexión del dispositivo raíz. El controlador vuelve entonces a entrar en usbh_device_disconnect() con el puntero colgante, bloqueando un mutex dentro del objeto ya liberado (use-after-free), eliminando el nodo liberado de la lista de dispositivos y llamando a k_mem_slab_free() sobre el bloque ya liberado (double-free). Si el bloque slab ha sido reasignado a un dispositivo recién conectado en ese intervalo, esto corrompe un objeto activo.

El impacto es una denegación de servicio (cierre inesperado) y corrupción de memoria; el vector de ataque es físico/local. El fallo fue introducido en la versión v4.4.0 por la refactorización de las operaciones de conexión/desconexión y se corrige borrando ctx->root en usbh_device_disconnect() antes de proceder a la liberación.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Zephyr

Reservar

2026-06-02

Divulgación

2026-07-12

Moderación

aceptado

Artículo

VDB-377884

CPE

listo

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!