CVE-2026-64347 in Linuxinformación

Resumen

por VulDB • 2026-07-26

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

usb: gadget: composite: corregir comprobación muerta vacía en el controlador USB_DT_OTG

La rama OTG de composite_setup() vuelve a la primera configuración cuando no hay ninguna seleccionada:

if (cdev->config) config = cdev->config; else config = list_first_entry(&cdev->configs, struct usb_configuration, list); if (!config) goto done; ... memcpy(req->buf, config->descriptors[0], value);

list_first_entry() nunca devuelve NULL. En una lista vacía, devuelve container_of() del encabezado de la lista. Por lo tanto, la comprobación "if (!config)" es muerta (inutilizable).

Cuando cdev->configs está vacío, config apunta al interior del struct usb_composite_dev. La lectura de config->descriptors[0] accede a cualquier dato que se encuentre en ese desplazamiento. El memcpy copia hasta w_length bytes desde allí hacia el búfer de respuesta.

cdev->configs puede estar vacío en dos casos. Uno es una carrera de desmontaje (teardown race) durante la desconexión del gadget con una transferencia de control en curso. El otro caso es un controlador que establece is_otg antes de añadir una configuración. Un reproductor que mantiene cdev->configs vacío desencadena un fallo KASAN en esta rama.

Utilizar list_first_entry_or_null() permite que la comprobación existente cumpla su función.

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

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-25

Moderación

aceptado

Artículo

VDB-383145

CPE

listo

EPSS

0.00220

KEV

no

Actividades

bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!