Vulnerabilidad en kernel de Linux (CVE-2024-56568)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-362
Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
27/12/2024
Última modificación:
03/02/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: iommu/arm-smmu: Aplazar la sonda de los clientes después del límite del dispositivo smmu. Se produce una desreferencia de puntero nulo debido a una ejecución entre la sonda del controlador smmu y la sonda del controlador del cliente, cuando se llama a of_dma_configure() para el cliente después de que se haya ejecutado la sonda iommu_device_register() para el controlador smmu pero antes de que se haya llamado a driver_bound() para el controlador smmu. A continuación se muestra cómo se produce la ejecución: T1: sonda de dispositivo Smmu T2: sonda de dispositivo cliente really_probe() arm_smmu_device_probe() iommu_device_register() really_probe() platform_dma_configure() of_dma_configure() of_dma_configure_id() of_iommu_configure() iommu_probe_device() iommu_init_device() arm_smmu_probe_device() arm_smmu_get_by_fwnode() driver_find_device_by_fwnode() driver_find_device() next_device() klist_next() /* puntero nulo asignado a smmu */ /* desreferencia de puntero nulo mientras smmu->streamid_mask */ driver_bound() klist_add_tail() Cuando este puntero smmu nulo se desreferencia más adelante arm_smmu_probe_device, el dispositivo falla. Para solucionar este problema, postergue la prueba del dispositivo cliente hasta que el dispositivo smmu se haya vinculado al controlador smmu de arm. [will: Agregar comentario]
Impacto
Puntuación base 3.x
4.70
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.9 (incluyendo) | 5.10.231 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.174 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.120 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.66 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.4 (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/229e6ee43d2a160a1592b83aad620d6027084aad
- https://git.kernel.org/stable/c/4a9485918a042e3114890dfbe19839a1897f8b2c
- https://git.kernel.org/stable/c/5018696b19bc6c021e934a8a59f4b1dd8c0ac9f8
- https://git.kernel.org/stable/c/c2527d07c7e9cda2c6165d5edccf74752baac1b0
- https://git.kernel.org/stable/c/dc02407ea952e20c544a078a6be2e6f008327973
- https://git.kernel.org/stable/c/f8f794f387ad21c4696e5cd0626cb6f8a5f6aea5