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

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

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/05/2025
Última modificación:
02/05/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: arm64/mm: corrige el file_map_count incorrecto para pmd/pud que no es de hoja. La comprobación de la tabla de páginas se activa inesperadamente BUG_ON() cuando se colapsa hugepage: ------------[ cortar aquí ]------------ ¡ERROR del kernel en mm/page_table_check.c:82! Error interno: Ups - BUG: 00000000f2000800 [#1] SMP Volcando búfer ftrace: (búfer ftrace vacío) Módulos enlazados: CPU: 6 PID: 68 Comm: khugepaged No contaminado 6.1.0-rc3+ #750 Nombre del hardware: linux,dummy-virt (DT) pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : page_table_check_clear.isra.0+0x258/0x3f0 lr : page_table_check_clear.isra.0+0x240/0x3f0 [...] Rastreo de llamadas: page_table_check_clear.isra.0+0x258/0x3f0 __page_table_check_pmd_clear+0xbc/0x108 pmdp_collapse_flush+0xb0/0x160 collapse_huge_page+0xa08/0x1080 hpage_collapse_scan_pmd+0xf30/0x1590 khugepaged_scan_mm_slot.constprop.0+0x52c/0xac8 khugepaged+0x338/0x518 kthread+0x278/0x2f8 ret_from_fork+0x10/0x20 [...] Dado que pmd_user_accessible_page() no comprueba si un pmd es hoja, disminuye file_map_count para un pmd que no es hoja que proviene de colapso_huge_page() y, por lo tanto, activa BUG_ON() inesperadamente. Solucione este problema usando pmd_leaf() en lugar de pmd_present() en pmd_user_accessible_page(). Además, use pud_leaf() para pud_user_accessible_page().

Impacto