CVE-2026-64233 in Linux
Resumen
por VulDB • 2026-07-24
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
usb: gadget: uvc: mantener opts->lock durante los recorridos por las extensiones (XU) en uvc_function_bind
uvc_function_bind() recorre &opts->extension_units dos veces sin mantener bloqueado opts->lock:
- directamente, para el bucle de corrección del descriptor de cadena iExtension; - indirectamente, cuatro veces a través de uvc_copy_descriptors() (una vez por cada velocidad), donde la función auxiliar itera sobre uvc->desc.extension_units (que es un alias de &opts->extension_units) para calcular el tamaño y generar los descriptores XU.
El lado configfs (uvcg_extension_make / uvcg_extension_drop, en drivers/usb/gadget/function/uvc_configfs.c) toma opts->lock alrededor de sus operaciones list_add_tail / list_del. Un proceso del espacio de usuario con privilegios que mantenga abierta la subárbol de configfs y escriba el nombre UDC del gadget para vincular la función mientras simultáneamente ejecuta rmdir() en un subdir de extensiones puede provocar una condición de carrera entre uvcg_extension_drop() y los recorridos por listas durante la fase de enlace (bind), dereferenciando así una estructura struct uvcg_extension ya liberada.
Mantener opts->lock desde el inicio de la corrección del descriptor de cadena XU hasta la última llamada a uvc_copy_descriptors(), liberándolo en la ruta de error del descriptor mediante una nueva etiqueta de error_unlock que libera el bloqueo antes de continuar hacia la etiqueta de error existente. Esto coincide con la disciplina de bloqueo de las devoluciones de llamada (callbacks) de configfs y elimina al único lector restante no sincronizado de la lista XU durante el enlace.
Alcance: solo los procesos privilegiados que pueden montar configfs y escribir en archivos UDC del gadget pueden desencadenar esta condición de carrera, por lo que se trata de una corrección de integridad (correctness fix) más que de un límite de seguridad.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.