Vulnerabilidad en kernel de Linux (CVE-2025-21939)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/04/2025
Última modificación:
01/04/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: drm/xe/hmm: No desreferenciar punteros de página de estructura sin bloqueo de notificador Los pnfs que obtenemos de hmm_range_fault() apuntan a páginas en las que no tenemos una referencia, y la garantía de que aún están en las tablas de páginas de la CPU es que el bloqueo del notificador debe mantenerse y el seqno del notificador aún es válido. Entonces, mientras construimos la tabla sg y marcamos las páginas como accedidas/sucias, necesitamos mantener este bloqueo con un seqno validado. Sin embargo, el bloqueo está contaminado por recuperación, lo que hace que sg_alloc_table_from_pages_segment() sea inutilizable, ya que asigna memoria internamente. En su lugar, construya la tabla sg manualmente. Para el caso que no es iommu, esto podría llevar a menos coalescencias, pero si eso es un problema, se puede arreglar más adelante en el código del cursor de recursos. En el caso de iommu, toda la tabla sg puede fusionarse en una única región va de dispositivo contiguo. Esto evita marcar páginas que no son de nuestra propiedad como sucias y accedidas, y también evita desreferenciar páginas de estructura que no son de nuestra propiedad. v2: - Usar assert para comprobar si las funciones de función de enlace de hmm son válidas (Matthew Auld). - Tener en cuenta que las páginas grandes pueden cruzar los límites de rango (Matthew Auld). v3: - No comprobar innecesariamente si hay una tabla sg no liberada (Matthew Auld). - Añadir una función up_read() faltante en una ruta de error (Matthew Auld). (Seleccionado de el commit ea3e66d280ce2576664a862693d1da8fd324c317).