VMScape: A nova vulnerabilidade que quebra o isolamento entre máquinas virtuais e o hipervisor

vulnerabilidade

Pesquisadores da ETH Zurique anunciaram em um post de blog que novo ataque chamado VMScape (CVE-2025-40300), capaz de ignorar as proteções Spectre-BTI e comprometer a segurança em ambientes virtualizados. Este método permite que um processo dentro de uma máquina virtual extraia dados confidenciais de componentes do hipervisor em execução no espaço do usuário, como o QEMU-KVM.

O preocupante é esse o A memória desses componentes pode conter informações críticas, como chaves de acesso a discos criptografados ou restos de dados confidenciais de outros sistemas convidados. Pesquisadores demonstraram a viabilidade do ataque com um exploit que conseguiu vazar chaves de criptografia de um driver virtio no QEMU, atingindo uma taxa de vazamento de 32 bytes por segundo em sistemas com CPUs AMD Zen 4.

Como funciona o VMScape

O VMScape é baseado na manipulação do buffer de destino do branch (BTB), usado por CPUs para prever desvios durante a execução especulativa. Ao injetar alvos de desvio criados, um invasor pode forçar previsões incorretas e explorar o cache do processador para deduzir informações confidenciais.

Embora Os sistemas modernos já incluem defesas contra Spectre-BTI, Eles não contemplaram isso tanto o processos convidados, como componentes do hipervisor no espaço do usuário compartilhavam o mesmo nível de proteçãoIsso permitiu que as entradas do BTB fossem confundidas entre os dois, quebrando o isolamento esperado.

Nossa análise sistemática do isolamento do domínio de proteção mostra que os mecanismos atuais são muito gerais: em todas as CPUs AMD Zen, incluindo a mais recente Zen 5, o preditor de ramificação não consegue distinguir entre execução no host e no convidado, permitindo práticas primitivas de ataque BTI (vBTI) de virtualização cruzada. Embora as CPUs Intel mais recentes ofereçam melhor isolamento, ainda existem deficiências.

Usando uma dessas primitivas vBTI, criamos um exploit abrangente chamado VMScape. O VMScape permite que um convidado KVM malicioso vaze informações confidenciais, como chaves de criptografia/descriptografia, de um hipervisor de espaço do usuário como o QEMU. Abaixo, você pode ver uma demonstração do VMScape em execução no AMD Zen 4.

O custo de segurança não é pequeno, já que o impacto depende da frequência com que o sistema transfere o controle para o espaço do usuário. Em ambientes com dispositivos emulados (padrão no QEMU), A queda no desempenho pode chegar a até 10% em média, enquanto em testes intensivos, como operações de disco com Virtio, foi observada uma degradação de até 51%. Em cargas leves, como o UnixBench, o impacto mal chega a 1%.

Processadores afetados

Vulnerabilidade afeta todos os processadores AMD Zen (incluindo a 5ª geração), para processadores Hygon modelos Intel já mais antigos, como os baseados em Coffee Lake (2017). CPUs mais recentes, como Cascade Lake e Alder Lake, representam um risco parcial. Em contraste, as gerações mais recentes da Intel incluem a tecnologia eIBRS, que melhora o isolamento host-convidado, embora não elimine completamente os ataques baseados em manipulação de histórico de ramificação (vBHI).

Limitações do ataque

Para o momento, O VMScape só foi demonstrado em sistemas que usam KVM com QEMU para emulação de dispositivos no espaço do usuário. Hipervisores como o Xen não são afetados, enquanto outros, como VMware e Hyper-V, ainda não foram avaliados exaustivamente.

Mitigações no kernel Linux

Para combater este ataque, Atualizações foram lançadas para o kernel Linux (versões 6.16.7, 6.12.47, 6.6.106, 6.1.152, 5.15.193 e 5.10.244). A solução implementa o uso da instrução IBPB (Indirect Branch Prediction Barrier), que limpa o estado do preditor de ramificação após cada transição da máquina virtual para o espaço do usuário.

A proteção pode ser habilitado por meio da opção de inicialização do kernel:

vmscape={desligado|ibpb|forçar}

Com A mitigação ibpb é habilitada apenas em CPUs vulneráveis, enquanto a força a aplica a todas as arquiteturas. O status da vulnerabilidade e as proteções ativas podem ser encontrados em:

/sys/dispositivos/sistema/cpu/vulnerabilidades/vmscape

Por fim, se estiver interessado em saber mais sobre o assunto, pode consultar os detalhes no link a seguir