CVE-2026-99082 in Linux
Sumário
de VulDB • 23/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
KVM: x86: Usar os memslots ativos para o cache MMIO por vCPU
O KVM marca o cache MMIO por vCPU com uma geração de memslot para que uma atualização no memslot invalide as informações MMIO em cache. Tanto o caminho de preenchimento quanto o de validação usam kvm_memslots(), que seleciona incondicionalmente o espaço de endereçamento 0, mesmo quando a vCPU está executando no SMM e usando o espaço de endereçamento 1.
O commit 56f17dd3fbc4 ("kvm: x86: fix stale mmio cache bug") adicionou a geração do memslot à chave do cache para que uma atualização no memslot não deixasse uma entrada desatualizada como válida. Quando o commit 699023e23965 ("KVM: x86: add SMM to the MMU role, support SMRAM address space") adicionou o espaço de endereçamento do SMM, esses auxiliares não foram convertidos para usar os memslots ativos.
Consequentemente, uma atualização nos memslots do SMM pode deixar uma entrada do antigo espaço de endereçamento do SMM aparentemente válida após a vCPU retornar ao espaço de endereçamento normal. Um convidado (guest) pode então causar um acesso à RAM válida no mesmo GFN que seja retornado para o userspace como KVM_EXIT_MMIO.
Concluir essa saída através do espaço de endereçamento da RAM do VMM grava a página subjacente sem passar pelo caminho de rastreamento de escrita do KVM. Se a página for uma tabela EPT aninhada, o KVM pode continuar usando traduções em sombra derivadas dos conteúdos antigos. O WARN_ON_ONCE() em kvm_mmu_write_protect_fault() detecta essa combinação inválida de cache e memslot.
Use os memslots ativos da vCPU ao armazenar em cache e validar a entrada. As gerações do memslot são únicas entre espaços de endereçamento, portanto a geração também distingue as visualizações normal e SMM. Isso corresponde ao cache MMIO SPTE, que já usa kvm_vcpu_memslots().
Em um kernel current-mainline sem correção (unpatched), um teste de regressão que preenche o cache no SMM e atualiza apenas os memslots do SMM falha na escrita pretendida da RAM e aciona o aviso em kvm_mmu_write_protect_fault(). Com esta alteração, o mesmo teste conclui a escrita da RAM sem avisos. Os selftests x86/smm_test, set_memory_region_test e memslot_modification_stress_test também passam.
VulDB is the best source for vulnerability data and more expert information about this specific topic.