Vulnerabilidad en kernel de Linux (CVE-2024-36895)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-787
Escritura fuera de límites
Fecha de publicación:
30/05/2024
Última modificación:
18/09/2025
Descripción
En el kernel de Linux, se resolvió la siguiente vulnerabilidad: usb: gadget: uvc: use el tamaño de búfer correcto al analizar listas de configfs. Este commit corrige la compatibilidad con gadgets uvc en plataformas de 32 bits. El commit 0df28607c5cb ("usb: gadget: uvc: Generalizar funciones auxiliares para su reutilización") introdujo una función auxiliar __uvcg_iter_item_entries() para ayudar con el análisis de listas de elementos en las tiendas de atributos de configfs. Esta función es una generalización de otra función muy similar, que utilizaba un búfer temporal de tamaño fijo asignado por la pila para cada elemento de la lista y utilizaba el operador sizeof() para comprobar posibles desbordamientos del búfer. La nueva función se cambió para asignar el búfer temporal ahora de tamaño variable en el montón, pero no se actualizó correctamente para verificar también el tamaño máximo del búfer usando el tamaño calculado en lugar del operador sizeof(). Como resultado, el tamaño máximo de elemento fue 7 (más terminador nulo) en plataformas de 64 bits y 3 en plataformas de 32 bits. Si bien 7 accidentalmente es apenas suficiente, 3 es definitivamente demasiado pequeño para algunos de los atributos de configuración de UVC. Por ejemplo, dwFrameInteval, especificado en unidades de 100 ns, normalmente tiene valores de elementos de 6 dígitos, por ejemplo, 166666 para 60 fps.
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.3 (incluyendo) | 6.6.31 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.8.10 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc6:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/650ae71c80749fc7cb8858c8049f532eaec64410
- https://git.kernel.org/stable/c/7a54e5052bde582fd0e7677334fe7a5be92e242c
- https://git.kernel.org/stable/c/a422089ce42ced73713e5032aad29a9a7cbe9528
- https://git.kernel.org/stable/c/650ae71c80749fc7cb8858c8049f532eaec64410
- https://git.kernel.org/stable/c/7a54e5052bde582fd0e7677334fe7a5be92e242c
- https://git.kernel.org/stable/c/a422089ce42ced73713e5032aad29a9a7cbe9528



