Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2022-48797)

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
16/07/2024
Última modificación:
16/07/2024

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm: no intente migrar páginas COW con NUMA que tengan otros usos Oded Gabbay informa que habilitar el equilibrio de NUMA causa corrupción en la carga de prueba del acelerador Gaudí: "Todos los detalles están en el error, pero la conclusión es que de alguna manera, este parche causa corrupción cuando la función de equilibrio numa está habilitada Y no usamos la afinidad de procesos Y usamos GUP para anclar páginas para que nuestro acelerador pueda DMA hacia/desde la memoria del sistema, ya sea deshabilitando. El equilibrio de numa, el uso de la afinidad del proceso para vincularse a un nodo numa específico o revertir este parche hace que el error desaparezca" y Oded dividió el problema en dos para el commit 09854ba94c6a ("mm: simplificación de do_wp_page()"). Ahora bien, el equilibrio NUMA en realidad no debería cambiar la capacidad de escritura de una página y, como tal, no debería importarle a COW. Pero parece que sí. Sospechoso. Sin embargo, independientemente de eso, la condición para habilitar fallas NUMA en change_pte_range() no tiene sentido. Utiliza "page_mapcount(page)" para decidir si una página COW debe estar protegida por NUMA o no, y eso no tiene ningún sentido. El número de asignaciones que tiene una página es irrelevante: GUP no solo obtiene una referencia a una página como en el caso de Oded, sino que las otras asignaciones podrían eliminarse y la única referencia a ellas estaría en el recuento de páginas. Dado que nunca debemos intentar equilibrar NUMA una página que no podemos mover de todos modos debido a otras referencias, simplemente corrija el código para usar 'page_count()'. Oded confirma que eso soluciona su problema. Ahora bien, esto implica que algo en el equilibrio de NUMA termina cambiando las protecciones de la página (aparte de la obvia de hacer que la página sea inaccesible para obtener la información de fallas de NUMA). De lo contrario, la simplificación de COW no importaría, ya que hacer el GUP en la página garantizaría que se pueda escribir. También sería bueno descubrir la causa de ese cambio de permiso, ya que claramente da como resultado eventos COW falsos, pero arreglar la prueba sin sentido que funcionó antes es obviamente lo CorrectThing(tm) que se debe hacer de todos modos.

Impacto