Eles encontraram uma vulnerabilidade de execução especulativa que afeta a AMD

O projeto recentemente Grsecurity deu a conhecer através de uma publicação detalhes e uma demonstração um método de ataque para uma nova vulnerabilidade (já listado como CVE-2021-26341) em processadores AMD relacionados à execução de instruções especulativas após operações de salto para frente incondicionais.

Vulnerabilidade permite que o processador processe especulativamente a instrução imediatamente após a instrução de salto (SLS) na memória durante a execução especulativa. Ao mesmo tempo, essa otimização funciona não apenas para operadores de salto condicional, mas também para instruções que envolvem um salto incondicional direto, como JMP, RET e CALL.

Instruções de desvio incondicional podem ser seguidas por dados arbitrários que não se destinam à execução. Depois de determinar que a ramificação não envolve a execução da próxima instrução, o processador simplesmente reverte o estado e ignora a execução especulativa, mas o rastreamento de execução da instrução permanece no cache geral e está disponível para análise usando métodos de recuperação de canal lateral.

A AMD fornece uma atualização para uma mitigação recomendada, a mitigação G-5, no whitepaper "Técnicas de software para gerenciamento de especulação em processadores AMD". A mitigação do G-5 ajuda a solucionar possíveis vulnerabilidades associadas ao comportamento especulativo das instruções de desvio.

Os processadores AMD podem executar temporariamente instruções seguindo uma ramificação de encaminhamento incondicional que pode resultar em atividade de cache

Assim como a exploração do Spectre-v1, um ataque requer a presença de certas sequências de instruções (gadgets) no kernel, o que leva à execução especulativa.

Nesse caso, bloquear uma vulnerabilidade se resume a identificar esses dispositivos no código e adicionar instruções adicionais a eles que bloqueiam a execução especulativa. As condições para execução especulativa também podem ser criadas usando programas não privilegiados em execução na máquina virtual eBPF.

Esta investigação resultou na descoberta de uma nova vulnerabilidade, CVE-2021-26341 [1] , que discutiremos em detalhes neste artigo. Como de costume, vamos nos concentrar nos aspectos técnicos da vulnerabilidade, nas mitigações sugeridas pela AMD e nos aspectos de exploração.

Para bloquear a capacidade de construir dispositivos usando eBPF, é recomendado desabilitar o acesso não privilegiado ao eBPF no sistema ("sysctl -w kernel.unprivileged_bpf_disabled=1").

A vulnerabilidade afeta processadores baseados na microarquitetura Zen1 e Zen2:

Secretária

  • Processador AMD Athlon™ X4
  • Processador AMD Ryzen™ Threadripper™ PRO
  • Processadores AMD Ryzen™ Threadripper™ de XNUMXª geração
  • Processadores AMD Ryzen™ Threadripper™ de XNUMXª geração
  • APU AMD série A de XNUMXª geração
  • Processadores de desktop AMD Ryzen™ série 2000
  • Processadores de desktop AMD Ryzen™ série 3000
  • Processadores de desktop AMD Ryzen™ série 4000 com gráficos Radeon™

Móvel

  • Processador móvel AMD Ryzen™ série 2000
  • Processadores móveis AMD Athlon™ série 3000 com gráficos Radeon™
  • Processadores móveis AMD Ryzen™ série 3000 ou processadores móveis AMD Ryzen™ de XNUMXª geração com gráficos Radeon™
  • Processadores móveis AMD Ryzen™ série 4000 com gráficos Radeon™
  • Processadores móveis AMD Ryzen™ série 5000 com gráficos Radeon™

Chromebook

  • Processadores móveis AMD Athlon™ com gráficos Radeon™

servidor

  • Processadores AMD EPYC™ de primeira geração
  • Processadores AMD EPYC™ de XNUMXª geração

É mencionado que se o ataque for bem sucedido, a vulnerabilidade permite determinar o conteúdo de áreas de memória arbitrárias.

Devido a essa vulnerabilidade, pode ser possível identificar construções de código benignas que formam dispositivos SLS limitados, mas potencialmente exploráveis, nas CPUs afetadas. Conforme demonstrado com o exemplo eBPF, também é possível explorar a vulnerabilidade com dispositivos auto-injetados feitos à mão. O método apresentado pode ser usado, por exemplo, para quebrar a mitigação KASLR do kernel Linux.

Por exemplo, pesquisadores prepararam um exploit que permite determinar o layout do endereço e ignorar o mecanismo de proteção KASLR (kernel memory randomization) executando código sem privilégios no subsistema do kernel eBPF, além de outros cenários de ataque que podem vazar o conteúdo da memória do kernel não é descartado.

Finalmente se você estiver interessado em saber um pouco mais sobre isso, você pode verificar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.