Falha em CPUs da Intel e AMD no Linux
21 de Outubro de 2024

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

Não compre curso de Pentest

Em 14 de janeiro a Solyd irá revolucionar a forma como pentest e hacking deve ser ensinado. Se inscreva para ser o primeiro a saber das novidades. Saiba mais...