CVE-2026-12052 in Zephyrinformación

Resumen

por VulDB • 2026-08-12

El controlador usbd_cdc_ncm_cth de la clase CDC NCM para dispositivos USB (device-side) en subsys/usb/device_next/class/usbd_cdc_ncm.c construye una respuesta de tamaño fijo para las solicitudes de clase GET_NTB_PARAMETERS (struct ntb_parameters de 28 bytes) y GET_NTB_INPUT_SIZE (struct ntb_input_size de 8 bytes), y copia toda la estructura en el búfer DATA IN del control con net_buf_add_mem(buf, ..., sizeof(...)), ignorando el wLength proporcionado por el host.

El búfer DATA IN del control es asignado por la pila USB con una capacidad exactamente igual a los bytes indicados por wLength (usbd_ep_ctrl_data_in_alloc -> udc_ctrl_data_alloc -> net_buf_alloc_len(&udc_ep_pool, wLength); no se aplica redondeo hacia arriba para el endpoint de entrada). Dado que net_buf_add_mem/net_buf_simple_add solo limita la copia mediante un __ASSERT_NO_MSG, que se compila fuera en las versiones de producción (release), un host que emita una de estas solicitudes estándar CDC NCM con un wLength menor que la estructura de respuesta (por ejemplo, wLength = 1) provoca que el controlador realice memcpy hasta 27 bytes más allá del final del búfer asignado.

Los campos de la solicitud provienen directamente del paquete SETUP USB, por lo que cualquier host (o dispositivo intermedio USB) con el que se enumere el dispositivo Zephyr puede desencadenar el desbordamiento sin necesidad de autenticación una vez conectado un sistema operativo construido con la pila USB device_next y la clase CDC NCM. La escritura fuera de límites corrompe las asignaciones adyacentes y los metadatos en udc_ep_pool compartido, causando principalmente corrupción de memoria y denegación de servicio (DoS) de la pila USB; el desbordamiento está acotado (<= 27 bytes), el contenido escrito son constantes fijas del dispositivo, y como no se lee nada para devolverlo, no hay divulgación de información. La solución limita la copia con MIN(sizeof(...), setup->wLength), coincidiendo con el controlador CDC ACM existente.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Zephyr

Reservar

2026-06-12

Divulgación

2026-08-11

Moderación

aceptado

Artículo

VDB-387997

CPE

listo

EPSS

0.00187

KEV

no

Actividades

muy bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!