As últimas gerações de processadores Intel, incluindo os chips Xeon, e as microarquiteturas mais antigas da AMD no Linux estão vulneráveis a novos ataques de execução especulativa que contornam as mitigations existentes para o ‘Spectre’.
As vulnerabilidades afetam as gerações 12ª, 13ª e 14ª de chips da Intel para consumidores e as 5ª e 6ª gerações de processadores Xeon para servidores, além dos processadores AMD Zen 1, Zen 1+ e Zen 2.
Os ataques comprometem o Indirect Branch Predictor Barrier (IBPB) em processadores x86, um mecanismo de defesa central contra ataques de execução especulativa.
A execução especulativa é um recurso de otimização de desempenho em CPUs modernos que executa instruções antes de saber se serão necessárias para tarefas futuras, acelerando o processo quando a previsão está correta.
Instruções executadas com base na má previsão são chamadas de transitórias e são descartadas.
Este mecanismo tem sido uma fonte de riscos de side-channel, como o Spectre, pois o processo de especulação acessa dados sensíveis que poderiam ser recuperados do cache da CPU.
Pesquisadores da ETH Zurich, Johannes Wikner e Kaveh Razavi, explicam que, apesar do esforço de mitigação de vários anos para conter ataques semelhantes ao Spectre, houve inúmeras variantes que contornam as defesas existentes.
Sua contribuição é um ataque cross-process (na Intel) e o ataque PB-inception (na AMD) que permite sequestrar alvos de retorno especulativo mesmo após o IBPB ter sido aplicado, assim contornando as proteções atuais e vazando informações sensíveis.
No primeiro caso, o ataque explora uma falha no microcode da Intel onde o IBPB não invalida totalmente as previsões de retorno após uma troca de contexto.
O atacante manipula a execução especulativa de instruções de retorno, permitindo que previsões obsoletas vazem informações sensíveis, como o hash da senha root, de um processo suid.
Nos processadores AMD, o IBPB-on-entry no kernel do Linux é aplicado de maneira inadequada, permitindo que o preditor de retorno retenha previsões obsoletas mesmo após o IBPB.
O atacante treina erroneamente o preditor de retorno antes do IBPB ser acionado, sequestrando-o para vazar memória privilegiada do kernel após a barreira.
Os pesquisadores informaram tanto a Intel quanto a AMD sobre esses problemas em junho de 2024.
A Intel respondeu dizendo que já havia descoberto o problema internamente e atribuído a ele o identificador
CVE-2023-38575
.
A empresa lançou em março uma correção de microcode disponível por meio de uma atualização de firmware, mas os pesquisadores observam que o código não alcançou todos os sistemas operacionais, sendo o Ubuntu um deles.
A AMD também confirmou a vulnerabilidade e disse que o defeito já havia sido documentado e rastreado como
CVE-2022-23824
.
Vale ressaltar que o aviso da AMD inclui os produtos Zen 3 como afetados, que não estão listados no paper da ETH Zurich.
No entanto, a AMD classifica o problema como um bug de software, não um defeito de hardware.
As arquiteturas mais antigas afetadas e o fato de a AMD ter sabido do bug há muito tempo podem explicar a decisão da empresa de não emitir um microcode corretivo.
Embora os dois fornecedores de CPU soubessem sobre o bypass do Spectre, as empresas o marcaram nos avisos como tendo um potencial impacto.
Com seu trabalho, os pesquisadores da ETH Zurich conseguiram demonstrar que o ataque funciona até mesmo no Linux 6.5, que vem com defesas de IBPB-on-entry consideradas as mais fortes contra a exploração do Spectre.
A equipe da ETH Zurich está trabalhando com os mantenedores do kernel do Linux para desenvolver um patch para os processadores AMD, que estará disponível aqui quando estiver pronto.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...