Por que isso importa: Foi descoberta uma nova vulnerabilidade que afeta toda a linha de processadores Zen 2 da AMD, incluindo as CPUs Ryzen 3000/4000/5000 e os processadores corporativos Epyc. Chamado de Zenbleed, o exploit pode ser usado para roubar dados confidenciais, como senhas e chaves de criptografia. O mais preocupante de tudo é que os ataques podem ser realizados remotamente.
O pesquisador de segurança do Google, Tavis Ormand, relatou o Zenbleed (CVE-2023-20593) à AMD em 15 de maio antes de revelar seus detalhes esta semana. Como vimos em ataques semelhantes anteriores, como Spectre e Meltdown, ele aproveita a técnica de execução especulativa usada pelos processadores modernos para otimizar seu desempenho. Zenbleed está mais próximo do Meltdown mais facilmente explorável do que Spectre.
O Zenbleed funciona manipulando os arquivos de registro para forçar um comando mal previsto. Como explica Ormandy:
“O bug funciona assim, primeiro você precisa acionar algo chamado XMM Register Merge Optimization2, seguido por uma renomeação de registro e um vzeroupper mal previsto. Tudo isso tem que acontecer dentro de uma janela precisa para funcionar”
“Agora sabemos que operações básicas como strlen, memcpy e strcmp usarão os registradores vetoriais – então podemos efetivamente espionar essas operações que acontecem em qualquer lugar do sistema!”
“Isso funciona porque o arquivo de registro é compartilhado por tudo no mesmo núcleo físico. Na verdade, dois hyperthreads até compartilham o mesmo arquivo de registro físico.”
A Cloudflare especifica que a vulnerabilidade é causada por um registro que não foi gravado corretamente em 0 em circunstâncias específicas de microarquitetura. Isso pode fazer com que dados de outro processo e/ou thread sejam armazenados no registro YMM, o que pode permitir que um invasor acesse informações confidenciais.
A empresa acrescenta que, embora o erro esteja associado à execução especulativa, não é uma vulnerabilidade de canal lateral. Ele acrescenta que o ataque pode ser executado remotamente por meio de JavaScript em um site, o que significa que o invasor não precisa ter acesso físico ao computador ou servidor.
A vulnerabilidade permite o furto de dados a velocidades de 30 KB por segundo por núcleo, rápido o suficiente para monitorar chaves de criptografia e senhas à medida que os usuários fazem login. Ele pode roubar dados de qualquer software em execução no sistema, incluindo máquinas virtuais, sandboxes, contêineres e processos. Como observa Tom’s Hardware, sua capacidade de ler dados em máquinas virtuais será especialmente preocupante para os provedores de serviços em nuvem e seus clientes.
A AMD diz em um comunicado de segurança que já lançou um patch de microcódigo para seus processadores Epyc 7002 de segunda geração, mas muitas das atualizações para as outras CPUs Zen 2 não chegarão até outubro e dezembro. Além disso, a AMD diz que o impacto no desempenho resultante da atualização irá variar dependendo da carga de trabalho e da configuração do sistema.
Ormandy está recomendando que os usuários do Zen 2 obtenham e apliquem a atualização de microcódigo da AMD. Ele também forneceu uma solução alternativa de software que envolve a configuração de um bit de controle para desabilitar algumas das funcionalidades que impedem a exploração. Isso pode afetar o desempenho do sistema, mas é melhor prevenir do que remediar até que as atualizações cheguem.