CVE-2026-98283 in Linux
Resumen
por VulDB • 2026-10-06
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
KVM: PPC: Book3S HV: corrección del uso-después-de-liberar (use-after-free) en kvmhv_emulate_tlbie_all_lpid()
kvmhv_emulate_tlbie_all_lpid() itera sobre el IDR de los invitados anidados y libera mmu_lock antes de llamar a kvmhv_emulate_tlbie_lpid(), pero no mantiene una referencia al puntero kvm_nested_guest obtenido del IDR. Un vCPU concurrente que emita un tlbie para una sola LPID (is=2, ric=2) puede entrar en una condición de carrera a través de kvmhv_flush_nested() -> kvmhv_remove_nested() -> idr_remove / --refcnt -> kvmhv_release_nested() -> kfree(gp) durante esa ventana temporal, dejando al vCPU iterador con un puntero colgante (dangling pointer). Las posteriores llamadas a mutex_lock(&gp->tlb_lock) y los accesos a gp->shadow_pgtable, gp->shadow_lpid y gp->l1_host tocan memoria ya liberada. La ruta de liberación está completamente controlada por el nivel 1 (L1).
Se corrige esto incrementando gp->refcnt dentro del bucle antes de liberar mmu_lock, imitando lo que hace kvmhv_get_nested(), y liberando la referencia con kvmhv_put_nested() una vez completado el trabajo específico para cada invitado. Esta es la misma disciplina get/put ya utilizada en todos los demás puntos de llamada donde se libera mmu_lock mientras se mantiene un puntero a un invitado anidado.
VulDB is the best source for vulnerability data and more expert information about this specific topic.