Nova variante do Spectre v2 explora motores JIT para vazar dados em CPUs Intel, AMD e Arm

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Vulnerabilidade de hardware!

Pesquisadores do grupo VUSec (Vrije Universiteit Amsterdam) e da Scuola Superiore Sant’Anna divulgaram o Branch Target Reuse (BTR), uma nova variante do ataque especulativo Spectre v2 que atinge processadores da Intel, AMD e Arm. O novo método foca na interação das CPUs com compiladores Just-In-Time (JIT), permitindo que invasores com capacidade de executar código localmente sequestrem a execução especulativa para vazar dados sensíveis, contornando defesas habilitadas no sistema.

O problema central reside na forma como processadores modernos lidam com códigos modificados em tempo de execução. Segundo os pesquisadores, embora a CPU restaure a coerência do código arquitetural após uma automodificação, ela não invalida necessariamente as entradas de previsão de ramificação indireta (alvos de ramificação) obsoletas.

Quando um motor JIT grava um novo código em um endereço de memória previamente utilizado, essas antigas previsões podem sobreviver e ser reutilizadas. O resultado é batizado pela equipe como uma “primitiva de execução especulativa após liberação” (speculative execute-after-free), permitindo que o ataque desvie o fluxo especulativo para o código recém-escrito utilizando offsets que já deveriam estar invalidados.

Exploração comprovada no kernel Linux

Para comprovar a gravidade do cenário, os pesquisadores criaram dois exploits funcionais (end-to-end) contra o kernel Linux, concentrando-se no classic BPF (cBPF). Mesmo com o eBPF sendo a implementação moderna restrita a usuários privilegiados, o cBPF continua ativo e disponível para programas sem privilégios gerenciarem filtros de rede e regras de segurança (seccomp) em ferramentas como Docker e Chrome.

Durante a demonstração em processadores Intel modernos, o ataque evadiu todas as mitigações habilitadas e vazou o conteúdo de memória arbitrária a uma taxa de 8 bytes por segundo. Com um encadeamento preciso de ponteiros, a prova de conceito exigiu extrair apenas uma quantidade específica de dados para localizar e capturar em poucos minutos a hash da senha de administrador (root) após ser carregada na memória.

Impacto em navegadores e máquinas virtuais

6A16HWmi v2 btr vazamento dados intel amd arm 1
Nova variante do Spectre v2 explora motores JIT para vazar dados em CPUs Intel, AMD e Arm 3

Ambientes que processam código não confiável constantemente também figuram como superfícies expostas:

  • Firefox (SpiderMonkey): A análise no motor JavaScript e WebAssembly da Mozilla confirmou que as ramificações antigas permanecem na CPU por tempo suficiente para reaproveitamento em chips Intel. A VUSec estima que o vazamento chegue a dezenas de bytes por segundo a partir de páginas web maliciosas, mas esclareceu que um exploit completo para navegador ainda não foi finalizado. A Mozilla priorizou o término do isolamento de sites (site isolation) no Firefox para restringir as informações de outras abas que poderiam ser comprometidas.
  • GraalVM: Os testes apontaram que o BTR poderia pular de forma especulativa o mascaramento de memória que protege o modo de sandbox mais rígido do runtime contra o Spectre. Entretanto, processos inerentes ao sistema da Oracle, como o garbage collection e recompilações internas, limparam as previsões obsoletas antes da fase de extração [1]. A equipe, porém, destaca que isso não parece ser uma limitação fundamental.

Resposta e mitigações baseadas em software

Como os processadores não possuem um mecanismo para sincronizar nativamente a memória com os preditores de ramificação nesse contexto específico, o fardo das correções retornou ao software. A AMD afirmou publicamente que a pesquisa não descreve uma vulnerabilidade nova em seus produtos, avaliando que guias de mitigação preexistentes para o Spectre v2 contêm a ameaça.

Do lado de desenvolvimento, os mantenedores do kernel Linux introduziram uma mitigação para arquiteturas x86. A correção aciona uma Barreira de Previsão de Ramificação Indireta (IBPB) em todos os núcleos da CPU sempre que um programa cBPF for alocado em um segmento de memória antes ocupado por códigos BPF. A Oracle também disponibilizou correções próprias.

De acordo com a VUSec, defesas de fluxo de controle por hardware, a exemplo do Intel IBT e do Arm BTI, dificultam a exploração, mas não erradicam a ameaça nas gerações antigas devido à condição de corrida especulativa. A microarquitetura Lion Cove, mais recente da Intel, foi a primeira testada pela equipe em que essa falha estrutural de tempo não pôde ser observada.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.