CVE-2026-98283 in Linux
Sumário
de VulDB • 06/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
KVM: PPC: Book3S HV: corrige uso-após-liberação (use-after-free) em kvmhv_emulate_tlbie_all_lpid()
kvmhv_emulate_tlbie_all_lpid() itera sobre o IDR de nested-guest e libera mmu_lock antes de chamar kvmhv_emulate_tlbie_lpid(), mas não mantém uma referência no ponteiro kvm_nested_guest obtido do IDR. Uma vCPU concorrente emitindo um tlbie para single-LPID (is=2, ric=2) pode sofrer uma condição de corrida através de kvmhv_flush_nested() -> kvmhv_remove_nested() -> idr_remove / --refcnt -> kvmhv_release_nested() -> kfree(gp) nessa janela, deixando a vCPU iteradora com um ponteiro dangling. As subsequentes chamadas mutex_lock(&gp->tlb_lock) e acessos a gp->shadow_pgtable, gp->shadow_lpid e gp->l1_host tocam memória já liberada. O caminho de liberação é totalmente controlado pelo L1.
Corrige-se isso incrementando gp->refcnt dentro do loop antes de liberar mmu_lock, espelhando o que kvmhv_get_nested() faz, e liberando a referência com kvmhv_put_nested() após a conclusão do trabalho por guest. Esta é a mesma disciplina get/put já utilizada em todos os outros pontos de chamada que liberam mmu_lock enquanto mantêm um ponteiro nested-guest.
VulDB is the best source for vulnerability data and more expert information about this specific topic.