CVE-2024-53150

In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Fix out of bounds reads when finding clock sources The current USB-audio driver code doesn't check bLength of each descriptor at traversing for clock descriptors. That is, when a device provides a bogus descriptor with a shorter bLength, the driver might hit out-of-bounds reads. For addressing it, this patch adds sanity checks to the validator functions for the clock descriptor traversal. When the descriptor length is shorter than expected, it's skipped in the loop. For the clock source and clock multiplier descriptors, we can just check bLength against the sizeof() of each descriptor type. OTOH, the clock selector descriptor of UAC2 and UAC3 has an array of bNrInPins elements and two more fields at its tail, hence those have to be checked in addition to the sizeof() check.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

07 Jan 2025, 16:38

Type Values Removed Values Added
First Time Linux linux Kernel
Linux
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.1
CWE CWE-125
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/096bb5b43edf755bc4477e64004fa3a20539ec2f - () https://git.kernel.org/stable/c/096bb5b43edf755bc4477e64004fa3a20539ec2f - Patch
References () https://git.kernel.org/stable/c/45a92cbc88e4013bfed7fd2ccab3ade45f8e896b - () https://git.kernel.org/stable/c/45a92cbc88e4013bfed7fd2ccab3ade45f8e896b - Patch
References () https://git.kernel.org/stable/c/74cb86e1006c5437b1d90084d22018da30fddc77 - () https://git.kernel.org/stable/c/74cb86e1006c5437b1d90084d22018da30fddc77 - Patch
References () https://git.kernel.org/stable/c/a3dd4d63eeb452cfb064a13862fb376ab108f6a6 - () https://git.kernel.org/stable/c/a3dd4d63eeb452cfb064a13862fb376ab108f6a6 - Patch
References () https://git.kernel.org/stable/c/a632bdcb359fd8145e86486ff8612da98e239acd - () https://git.kernel.org/stable/c/a632bdcb359fd8145e86486ff8612da98e239acd - Patch
References () https://git.kernel.org/stable/c/ab011f7439d9bbfd34fd3b9cef4b2d6d952c9bb9 - () https://git.kernel.org/stable/c/ab011f7439d9bbfd34fd3b9cef4b2d6d952c9bb9 - Patch
References () https://git.kernel.org/stable/c/da13ade87a12dd58829278bc816a61bea06a56a9 - () https://git.kernel.org/stable/c/da13ade87a12dd58829278bc816a61bea06a56a9 - Patch
References () https://git.kernel.org/stable/c/ea0fa76f61cf8e932d1d26e6193513230816e11d - () https://git.kernel.org/stable/c/ea0fa76f61cf8e932d1d26e6193513230816e11d - Patch
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: ALSA: usb-audio: corrige lecturas fuera de los límites al encontrar fuentes de reloj. El código actual del controlador de audio USB no verifica la bLongitud de cada descriptor al atravesar los descriptores de reloj. Es decir, cuando un dispositivo proporciona un descriptor falso con una longitud b más corta, el controlador podría alcanzar lecturas fuera de los límites. Para solucionarlo, este parche agrega controles de cordura a las funciones de validación para el recorrido del descriptor de reloj. Cuando la longitud del descriptor es más corta de lo esperado, se omite en el bucle. Para los descriptores de fuente de reloj y multiplicador de reloj, podemos comparar bLength con el sizeof() de cada tipo de descriptor. OTOH, el descriptor del selector de reloj de UAC2 y UAC3 tiene una matriz de elementos bNrInPins y dos campos más en su cola, por lo que deben verificarse además de la verificación sizeof().

24 Dec 2024, 12:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-12-24 12:15

Updated : 2025-04-10 15:39


NVD link : CVE-2024-53150

Mitre link : CVE-2024-53150

CVE.ORG link : CVE-2024-53150


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-125

Out-of-bounds Read