Investigadores de la Universidad de Toronto han presentado GPUThor y Rowhammer, un ataque que apunta a GPUs de trabajo de NVIDIA con memoria GDDR6. La novedad no es solo provocar cambios en bits: el trabajo sostiene que, bajo condiciones específicas, el mecanismo de corrección de errores (ECC) recomendado para mitigar Rowhammer puede resultar insuficiente. Como resultado, el atacante puede lograr denegación de servicio y, en ciertos escenarios, una escalada de privilegios a nivel de host.
El hallazgo es especialmente relevante porque Rowhammer en GPUs no es una teoría abstracta: el equipo describe campañas de prueba prolongadas, cantidades sustanciales de errores y un encadenamiento de pasos para escapar del aislamiento del proceso. A continuación, explicamos qué es GPUThor y Rowhammer, a qué hardware afecta según el informe y qué recomendaciones de mitigación se desprenden del estudio.
Qué es GPUThor y Rowhammer
GPUThor y Rowhammer es el nombre del ataque presentado en el que se manipulan patrones de acceso a la memoria para inducir bit flips (cambios en bits) en chips DRAM presentes en la GPU. El enfoque se basa en el comportamiento físico: al “martillar” filas específicas de memoria, se busca que otras filas vecinas —las “víctimas”— sufran perturbaciones.
En este caso, el trabajo describe una estrategia de martilleo no uniforme. A diferencia de ataques previos donde las filas agresoras y las filas usadas para “cegar” defensas se activaban con frecuencia similar, GPUThor activa la fila adyacente a la víctima con mucha mayor intensidad que las filas que sirven para interferir con una defensa denominada Target Row Refresh (TRR).
Qué GPUs se mostraron vulnerables
En las pruebas reportadas, los investigadores comprobaron vulnerabilidad en varias tarjetas de la familia Ampere con GDDR6:
- RTX A6000 (48 GB GDDR6)
- RTX A5000 (24 GB GDDR6)
- RTX A4500 (20 GB GDDR6)
- RTX A4000 (16 GB GDDR6)
El informe también indica que otros modelos ensayados no mostraron los mismos cambios de bits, incluyendo una RTX 4090 con GDDR6X y GPU adicionales con memorias distintas (por ejemplo, A10, L4 y L40 con GDDR6), además de GPUs fuera del conjunto probado.
La explicación sugerida por los autores es que las implementaciones de TRR pueden variar entre tipos de memoria, lo que haría que los patrones de GPUThor no funcionen de la misma manera en otros chips.
Cómo se ejecuta el ataque: condiciones y acceso
Un punto clave es que montar GPUThor y Rowhammer requiere poder lanzar un kernel de CUDA sin privilegios en la GPU objetivo. En términos prácticos, el informe plantea dos rutas:
- Ser un co-tenante en una tarjeta compartida (por ejemplo, en entornos multicliente).
- Ejecutar código no confiable en una máquina de un solo inquilino (single-tenant).
Además, los investigadores recomiendan reducir el riesgo evitando compartir la GPU entre tenantes, vigilar contadores de errores ECC y restringir la ejecución de cargas CUDA no confiables.
Por qué TRR no detiene el martilleo no uniforme
El artículo sostiene que el éxito de GPUThor depende de cómo se distribuyen las activaciones de memoria dentro de la GPU. De acuerdo con los detalles del trabajo:
- Accesos repetidos emitidos dentro de un warp (el grupo de 32 hilos que se ejecutan en sincronía) se fusionan en el controlador de memoria en una única activación de DRAM.
- Accesos emitidos desde warps diferentes hacia líneas de caché distintas dentro de la misma fila pueden terminar en activaciones separadas.
Con esta base, el atacante puede diseñar un patrón que “encaje” con la cadencia real de TRR en esos dispositivos. El informe sugiere que, en estas memorias GDDR6, TRR probablemente actúa con menos frecuencia de la que se asume a menudo: aproximadamente una vez cada 72 intervalos de refresco. A partir de ese supuesto, los autores construyen un patrón basado en seis intervalos.
Resultados: cantidad de errores y efecto de ECC
Los investigadores reportan que, al desactivar ECC, las campañas en las cuatro tarjetas generaron entre 72.000 y 377.000 bit flips por gigabyte. La RTX A5000 aparece como la más susceptible, con 377.552 flips por gigabyte.
El informe también compara la magnitud de estos resultados con trabajos anteriores del mismo grupo sobre Rowhammer en GPU (por ejemplo, se mencionan tasas inferiores en campañas previas).
En cuanto a la naturaleza de los fallos a granularidad de 16 bytes, se reportan errores de diferentes niveles:
- 387 double-bit flips
- 2 triple-bit flips
Cuando se analiza el papel de ECC, los hallazgos son contundentes. Las GPUs emplean SECDED ECC, que puede corregir un bit y detectar dos dentro de un bloque protegido. Sin embargo, el estudio afirma que el comportamiento no es perfecto: encuentran casos de mis-corrección que desembocan en silent data corruption (SDC) (corrupción silenciosa de datos) porque el sistema no solo falla, sino que puede “corregir” mal.
Qué pasa cuando ECC está activado: DUE y consecuencias
Con ECC activado, el equipo describe un escenario de denegación de servicio y bloqueo funcional. Por ejemplo, en una RTX A6000 con ECC habilitado, una campaña basada en una sola “banca” de martilleo produjo:
- 11 errores DUE (detectables, no corregibles) en un día
- 1 caso de SDC
El ritmo reportado equivale aproximadamente a un DUE cada dos horas. Según los autores, cada DUE provoca el aborto de todos los kernels ejecutándose en la tarjeta, dejándola inutilizable hasta que se reinicie.
En el marco del estudio, esto no significa que el atacante “pierda” con ECC; al contrario, se sugiere que esos eventos pueden utilizarse como parte de una escalada y como vector temporal para explotar la forma en la que la GPU gestiona la corrección/servicio de errores.
Escalada de privilegios: de errores a root en el host
Para la escalada, los investigadores reutilizan código de un trabajo previo del mismo grupo centrado en la manipulación de privilegios en el contexto de páginas. El encadenamiento descrito en el informe sigue una lógica:
- Preparar tablas de páginas de forma que queden en un estado vulnerable.
- Martillar filas vecinas para corromper un campo que referencia el número de marco (page-frame number) de una entrada.
- Ejecutar un segundo kernel que alcanza memoria fuera del proceso mediante la entrada alterada.
Con el tipo de error adecuado, el equipo afirma lograr:
- Con triple-bit SDC, obtener root en el host con IOMMU habilitado.
- Con double-bit DUE, conseguir escalada de privilegios en sistemas donde IOMMU está deshabilitado.
El informe agrega un detalle relevante: incluso los DUE de doble bit serían explotables porque el tratamiento de errores en las GPUs ocurriría de manera perezosa. Esa “ventana” temporal permitiría que el kernel del atacante consuma los datos antes de que la GPU sea finalizada por el manejo del error, aumentando la probabilidad de explotación.
En términos de tiempos reportados, el estudio menciona que localizar errores multi-bit explotables puede llevar varios días en una configuración (por ejemplo, en una A6000), y que una escalada end-to-end se completó en menos de un par de horas en las tarjetas evaluadas, dependiendo del patrón utilizado.
Implicaciones para el diseño de defensas
El trabajo subraya que GPUThor y Rowhammer no invalida la utilidad de ECC por completo, pero sí cambia el mensaje: ECC “sube la barrera” y, en muchos casos, puede impedir ciertos resultados. Aun así, los autores sostienen que ya no debe considerarse una defensa suficiente por sí sola frente a Rowhammer en estas condiciones.
Como posible dirección para una solución completa, el informe apunta a la necesidad de corrección de errores de varios bits más fuerte y defensas a nivel interno de memoria (por ejemplo, ideas relacionadas con gestión de refresco o conteo por fila de activaciones) en generaciones futuras de GPUs.
Qué deberían hacer organizaciones y equipos
Si gestionas entornos que incluyen GPUs de trabajo, este informe sugiere medidas prácticas para reducir riesgo:
- Evitar compartir la misma GPU entre tenantes no confiables cuando sea posible.
- Restringir cargas CUDA provenientes de código no confiable.
- Supervisar contadores de errores ECC para detectar patrones anómalos.
- Evaluar políticas de aislamiento y monitoreo cuando existan procesos de múltiples usuarios en la misma infraestructura.
También es prudente revisar el alcance real: el estudio se centra en GPUs y tipos de memoria específicos, y reporta que en otras memorias (o en otros dispositivos) no observó los mismos cambios de bits con los patrones de GPUThor.
Conclusión
GPUThor y Rowhammer representan un salto importante en la comprensión de Rowhammer contra GPUs: el ataque está diseñado para explotar detalles de activación y refresco en memorias GDDR6, y puede desencadenar tanto corrupción silenciosa como denegación de servicio. Lo más preocupante es la demostración de escalada de privilegios hasta el host en ciertos escenarios, incluso con ECC activado, lo que obliga a replantear cómo se evalúan mitigaciones.
Mientras no exista un parche específico reportado en el material publicado, el enfoque defensivo pasa por reducir superficies de ejecución de código no confiable, mejorar el monitoreo y no depender exclusivamente de ECC como única barrera. Para equipos de seguridad y plataformas que usan GPUs en entornos compartidos, este es un recordatorio de que la amenaza puede cruzar del hardware al sistema si se combinan condiciones técnicas y tiempo de ejecución.
Fuente: https://thehackernews.com/2026/08/gputhor-rowhammer-defeats-ecc-on-nvidia.html
