Pesquisadores da VUSec, pertencente ao Systems and Network Security Group da Universidade VU Amsterdam, e da Scuola Superiore Sant’Anna revelaram uma nova variante de ataques Spectre v2, que chamaram de Branch Target Reuse ou BTR. O ataque explora informações antigas mantidas pelo preditor de desvios do processador após a reutilização da memória para executar novo código, permitindo a execução especulativa de instruções e o vazamento de dados sensíveis.
Em testes no Linux, os pesquisadores conseguiram recuperar o hash da senha do usuário root da memória de um processo su a uma taxa de oito bytes por segundo. A extração completa do hash levou, em média, cerca de três minutos em processadores Raptor Cove e cinco minutos em processadores Lion Cove, segundo os resultados dos pesquisadores.
Como funciona o Branch Target Reuse?
O ataque baseia-se em uma lacuna entre o código gerado pelos mecanismos de execução imediata JIT e o estado lembrado pelo preditor de desvios do processador. Quando os mecanismos JIT liberam código e colocam outro código no mesmo endereço, o processador pode manter uma previsão antiga para o destino de um salto indireto. Ao executar um salto posterior, o processador pode executar temporariamente instruções do destino antigo, embora o caminho correto de execução seja diferente.
Os pesquisadores exploraram esse mecanismo usando programas classic BPF não privilegiados para treinar a previsão e, em seguida, liberando o programa original e colocando outro programa na memória reutilizada. A execução especulativa em um deslocamento não alinhado criou efeitos mensuráveis na memória cache, permitindo aos pesquisadores inferir os dados byte a byte.
Âmbito da exposição e resultados práticos
A equipe testou o ataque em cBPF do Linux em duas configurações: a configuração padrão e uma configuração que inclui a opção de proteção constant blinding. Mesmo com a proteção, o exploit foi adaptado para codificar as instruções controladas pelo atacante dentro dos deslocamentos dos saltos, mantendo a capacidade de recuperar o hash em cerca de cinco minutos.
Os pesquisadores também estudaram a exposição do Firefox SpiderMonkey e do Oracle GraalVM. O modelo de prova de conceito no SpiderMonkey mostrou a persistência das previsões antigas após a reutilização do código, mas não se transformou em um exploit completo do navegador. No GraalVM, os pesquisadores encontraram uma forma de contornar especulativamente uma verificação de sandbox, mas a atividade do mecanismo apagou as previsões antes que o ataque fosse concluído em seus experimentos.
Os pesquisadores confirmaram o comportamento em todos os processadores testados, incluindo Intel, AMD e Arm, observando que a maior parte do hardware moderno pode estar vulnerável. Isso está relacionado à ausência de um mecanismo atual que garanta a sincronização do preditor de desvios com o estado real do código.
O que os administradores de sistemas devem fazer?
Os pesquisadores notificaram as partes afetadas, e os problemas receberam os identificadores CVE-2026-64507 e CVE-2026-64508. Correções foram integradas ao kernel do Linux; portanto, a medida imediata para usuários do Linux é atualizar para a versão mais recente disponível do kernel, além de aplicar atualizações do sistema operacional e do firmware.
O roubo do hash não significa recuperar diretamente a senha em texto simples; o sucesso de sua quebra offline ou por meio de recursos de computação em nuvem depende do algoritmo de hash e da força da senha. Ainda assim, o resultado é importante do ponto de vista de segurança porque mostra que ataques de execução especulativa baseados na reutilização de código não são necessariamente teóricos e que as atualizações de software, por si só, podem não resolver a origem do problema antes que sejam fornecidos mecanismos de hardware capazes de garantir a consistência das previsões de desvios com o código atual.