Vulnerabilidad en kernel de Linux (CVE-2024-36977)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
18/06/2024
Última modificación:
01/10/2025
Descripción
En el kernel de Linux, se resolvió la siguiente vulnerabilidad: usb: dwc3: Espere incondicionalmente después de emitir el comando EndXfer Actualmente, todas las IP/revisiones del controlador excepto DWC3_usb3 >= 310a esperan 1 ms incondicionalmente para que ENDXFER se complete cuando el IOC no está configurado. Esto se debe a que las revisiones del controlador DWC_usb3 >= 3.10a admiten el bit GUCTL2[14: Rst_actbitlater] que permite sondear el bit CMDACT para saber si se completó el comando ENDXFER. Considere un caso en el que se puso en cola una solicitud IN y, en paralelo, se llamó a soft_disconnect (debido a ffs_epfile_release). Esto eventualmente llama a stop_active_transfer con el IOC borrado, por lo tanto, send_gadget_ep_cmd() omite la espera de que CMDACT se borre durante EndXfer. Para los controladores DWC3 con revisiones >= 310a, tampoco esperamos forzosamente 1 ms y procedemos a desasignar las solicitudes. Si ENDXFER no se completó en este momento, se producirán fallas de SMMU ya que el controlador aún estaría accediendo a esas solicitudes. Solucione este problema asegurando la finalización de ENDXFER agregando un retraso de 1 ms en __dwc3_stop_active_transfer() incondicionalmente.
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1 (incluyendo) | 6.1.92 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.32 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.8.11 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.9 (incluyendo) | 6.9.2 (excluyendo) |
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/1ba145f05b5c8f0b1a947a0633b5edff5dd1f1c5
- https://git.kernel.org/stable/c/1d26ba0944d398f88aaf997bda3544646cf21945
- https://git.kernel.org/stable/c/341eb08dbca9eae05308c442fbfab1813a44c97a
- https://git.kernel.org/stable/c/4a387e032909c6dc2b479452c5bbe9a252057925
- https://git.kernel.org/stable/c/ec96bcf5f96a7a5c556b0e881ac3e5c3924d542c
- https://git.kernel.org/stable/c/1ba145f05b5c8f0b1a947a0633b5edff5dd1f1c5
- https://git.kernel.org/stable/c/1d26ba0944d398f88aaf997bda3544646cf21945
- https://git.kernel.org/stable/c/341eb08dbca9eae05308c442fbfab1813a44c97a
- https://git.kernel.org/stable/c/4a387e032909c6dc2b479452c5bbe9a252057925
- https://git.kernel.org/stable/c/ec96bcf5f96a7a5c556b0e881ac3e5c3924d542c



