Vulnerabilidad en kernel de Linux (CVE-2024-53071)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
19/11/2024
Última modificación:
26/11/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: drm/panthor: Sea más estricto con las banderas de mapeo de IO La implementación actual de panthor_device_mmap_io() tiene dos problemas: 1. Para mapear DRM_PANTHOR_USER_FLUSH_ID_MMIO_OFFSET, panthor_device_mmap_io() abandona si VM_WRITE está configurado, pero no borra VM_MAYWRITE. Eso significa que el espacio de usuario puede usar mprotect() para hacer que el mapeo sea escribible más tarde. Este es un problema clásico del controlador de Linux. No creo que esto realmente tenga algún impacto en la práctica: cuando la GPU está encendida, las escrituras en FLUSH_ID parecen ignorarse; y cuando la GPU no está encendida, la página dummy_latest_flush proporcionada por el controlador está diseñada deliberadamente para no hacer ningún vaciado, por lo que lo único que escribir en dummy_latest_flush podría lograr sería hacer que ocurrieran *más* vaciados. 2. panthor_device_mmap_io() no bloquea las asignaciones MAP_PRIVATE (que son asignaciones sin el indicador VM_SHARED). MAP_PRIVATE en combinación con VM_MAYWRITE indica que la VMA tiene semántica de copia en escritura, que para VM_PFNMAP son semicompatibles pero con bastante mala calidad. En particular, en una asignación de este tipo, el controlador solo puede instalar PTE durante mmap() llamando a remap_pfn_range() (porque remap_pfn_range() quiere **almacenar la dirección física de la memoria física asignada en el vm_pgoff de la VMA**); la instalación de PTE más tarde con un controlador de errores (como lo hace panthor) no se admite en asignaciones privadas y, por lo tanto, si intenta generar un error en una asignación de este tipo, vmf_insert_pfn_prot() se bloquea cuando llega a una comprobación de ERROR(). Arréglelo borrando la marca VM_MAYWRITE (la escritura en el espacio de usuario en FLUSH_ID no tiene sentido) y requiriendo VM_SHARED (la semántica de copia en escritura para FLUSH_ID no tiene sentido). Los reproductores para ambos escenarios están en las notas de mi parche en la lista de correo; probé que estos errores existen en una máquina Rock 5B. Tenga en cuenta que solo probé la compilación del parche, no lo he probado; aún no tengo una configuración de compilación de kernel que funcione para la máquina de prueba. Pruébelo antes de aplicarlo.
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.10 (incluyendo) | 6.11.8 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página