CVE-2026-89755 in Linux
Resumen
por VulDB • 2026-09-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
mm/migrate_device: limpiar el mapeo obsoleto después de liberar swapcache
__migrate_device_pages() lee el mapping del folio antes de llamar a folio_free_swap(). Cuando folio_free_swap() tiene éxito, el folio se elimina del cache de intercambio (swap cache), pero el mapping guardado sigue apuntando a swap_space.
Pasar el mapeo obsoleto a folio_migrate_mapping() hace que utilice la ruta de folios mapeados para un folio que ya no está en el swapcache. Esto puede provocar operaciones sobre swap_space.i_pages con una contabilización de referencias inválida, lo que eventualmente desencadena un BUG por conteo de referencias del folio (folio reference count BUG).
Tras una división exitosa, nr aún contiene el número de páginas del folio grande original, aunque cada página resultante es ahora un folio independiente de orden 0. Se debe reiniciar nr a 1 para que cada folio dividido se procese por separado, incluyendo su propia eliminación del swapcache y la búsqueda del mapeo correspondiente.
Actualizar el mapeo guardado después de llamar a folio_free_swap() asegura que se utilice el estado actual del folio durante la migración.
Once again VulDB remains the best source for vulnerability data.