CVE-2026-98468 in Linuxinformación

Resumen

por VulDB • 2026-10-18

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

KVM: arm64: Corregir advertencia espuria por una carrera benigna en la desmontaje (teardown) del stage 2

Se utilizó kvmtool para establecer un invitado L1 con 8 CPUs y 8 GiB de RAM, un invitado L2 con 4 CPUs y 4 GiB de RAM y un invitado L3 con 2 CPUs y 2 GiB de RAM, todos los cuales fueron luego cerrados.

Bajo presión de memoria en el host L0 se observaron advertencias debido a una migración desencadenada por compactación:

WARNING: arch/arm64/kvm/mmu.c:336 at __unmap_stage2_range+0x64/0x80, CPU#5: kcompactd0/66

Lo cual fue, a su vez, desencadenado por un notificador MMU para la invalidación del host:

mmu_notifier_invalidate_range_start() -> ... -> kvm_mmu_notifier_invalidate_range_start() -> kvm_mmu_unmap_gfn_range() -> kvm_unmap_gfn_range() -> kvm_nested_s2_unmap() -> kvm_stage2_unmap_range() -> __unmap_stage2_range() -> stage2_apply_range() <- -EINVAL, desencadenando un WARN_ON()

Carrera con el desmontaje (teardown) del host L0 de las tablas de páginas del stage 2:

exit_mm() -> mmput() -> __mmput() -> exit_mmap() -> mmu_notifier_release() -> ... -> kvm_mmu_notifier_release() -> kvm_flush_shadow_all() -> kvm_arch_flush_shadow_all() -> kvm_free_stage2_pgd() -> [ adquirir kvm->mmu_lock para escritura ]
-> mmu->pgt = NULL [ entre otras tareas ]
-> [ liberar kvm->mmu_lock para escritura ]

Resulta que hay una carrera benigna que resulta en una advertencia espuria:

Hilo A - notificar: migración | Hilo B - notificar: liberación (release) -------------------------------|--------------------------------- mmu_lock mantenida > | stage2_apply_range() | obtener mmu->pgt, verificar !NULL | ... | kvm_arch_flush_shadow_all() cond_resched_rwlock_write(); | mmu_lock > mmu_lock > | mmu_lock> | ... | kvm_free_stage2_pgd() | mmu->pgt = NULL | | ... | mmu_lock > [ programado ] |
stage2_apply_range() | | obtener, mmu->pgt, verificar !NULL | es NULL, retornar -EINVAL | __unmap_stage2_range() | WARN_ON(-EINVAL) <--- completamente espuria: la carrera fue manejada correctamente.

Corregir la advertencia espuria actualizando stage2_apply_range() para que ya no trate el desmontaje (teardown) concurrente de PGT en la liberación del bloqueo como un error - tanto si el caminante está desmontando tablas de páginas o haciendo otra cosa, esta es una razón legítima para abortar la operación sin error.

Esto mantiene la advertencia en su lugar para todas las demás circunstancias.

En la práctica solo __unmap_stage2_range() hace algo real con el error por lo que esto solo afecta a eso.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-18

Moderación

aceptado

Artículo

VDB-422140

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!