Descoberta

Um novo ataque do tipo Rowhammer, batizado de GPUThor, foi capaz de burlar a proteção por códigos de correção de erro (ECC) em GPUs da NVIDIA, permitindo ataques de negação de serviço (DoS) e elevação de privilégios até o nível root, segundo uma pesquisa da Universidade de Toronto.

Funcionamento do Ataque

O ataque se baseia em acessar repetidamente linhas de memória (“hammering”) para causar inversão de bits em regiões vizinhas, corrompendo dados. O GPUThor ajustou esse padrão de acesso para evitar a ativação de mitigações de memória GDDR6, como o Target Row Refresh (TRR), explorando dois comportamentos não documentados da GPU: como as requisições de memória são agrupadas e a frequência de ativação do TRR.

Resultados e Impacto

Em testes contra GPUs Ampere com memória GDDR6, incluindo os modelos RTX A4000, A4500, A5000 e A6000, o GPUThor gerou entre 72 mil e 377 mil inversões de bits por GB, sem a proteção do ECC. Com o ECC habilitado, o ataque gerou 387 erros de dois bits que o ECC detecta mas não corrige, e dois erros de três bits que o ECC tentou corrigir erroneamente, resultando em corrupção de dados.

O ataque também demonstrou causar estado de DoS em uma RTX A6000 com ECC, fazendo a GPU reiniciar a cada duas horas e encerrando todos os workloads. Em repetidas tentativas, o dispositivo acaba marcado como necessitando de substituição. A elevação de privilégios a root é possível ao corromper as tabelas de página da GPU, concedendo a um programa CUDA não privilegiado acesso arbitrário à memória e abrindo um shell root no sistema host.

Modelos Afetados e Mitigações

Além dos quatro modelos confirmados, pesquisadores indicam que GPUs server-class Ampere (A100) também são vulneráveis à elevação de privilégios, pois dependem do ECC do tipo SECDED. Em GPUs Blackwell, a feature RAS Repair torna o ataque mais demorado, mas não o impede. Há indicações de que GPUs com HBM3/e ou GDDR7 com ECC on-die também podem ser vulneráveis se inversões multi-bit forem desencadeadas.

A NVIDIA publicou um advisory em 21 de agosto, recomendando a habilitação de SYS-ECC e isolamento IOMMU/DMA, monitoramento de telemetria de erros da GPU e restrição de compartilhamento ou execução de workloads não confiáveis. Os pesquisadores recomendam evitar o compartilhamento de GPU entre tenants, monitorar contadores de erro ECC e restringir workloads CUDA não confiados, afirmando que uma proteção completa exigirá ECC mais forte para múltiplos bits e defesas de nível de hardware em GPUs futuras.

Com informações de: BleepingComputer