GPUThor обошёл ECC на рабочих GPU NVIDIA и получил root на хосте

Исследователи Университета Торонто представили атаку GPUThor класса Rowhammer на рабочие видеокарты NVIDIA поколения Ampere с памятью GDDR6: RTX A6000, A5000, A4500 и A4000. Метод обходит защиту ECC, рекомендованную NVIDIA против GPU Rowhammer, и в экспериментах позволил вызвать отказ в обслуживании и повысить привилегии до root на хост-системе.
Для атаки злоумышленнику необходимо запускать непривилегированное CUDA-ядро на целевой видеокарте. Такой доступ возможен у соседа по общей GPU или при запуске недоверенного кода на машине с одним арендатором.
Как GPUThor обходит защиту памяти
Rowhammer вызывает изменения битов памяти частыми обращениями к соседним строкам DRAM. GPUThor использует неравномерный шаблон: строка-агрессор активируется заметно чаще строк-приманок, предназначенных для перегрузки механизма Target Row Refresh, или TRR.
Авторы выяснили, что обращения из одного warp из 32 потоков контроллер памяти объединяет в одну активацию DRAM. Обращения из разных warp к разным кэш-линиям одной строки сохраняются как отдельные активации. На этом наблюдении построены ядра для интенсивного воздействия на память.
При отключённом ECC исследователи получили от 72 000 до 377 000 битовых сбоев на гигабайт на четырёх картах. Наиболее уязвимой оказалась RTX A5000: 377 552 сбоя на гигабайт. На гранулярности 16 байт команда обнаружила 387 двойных и две тройные ошибки.
Почему ECC не устраняет риск
Используемый механизм SECDED исправляет один бит и обнаруживает два, но при тройной ошибке может выполнить неверную коррекцию и вызвать тихое повреждение данных. На локальной RTX A6000 с включённым ECC одно банковое воздействие за сутки привело к 11 обнаруживаемым неисправимым ошибкам и одному случаю тихого повреждения данных.
Неисправимая ошибка прекращает работу всех ядер на карте, и устройство требует сброса. Авторы также использовали код прежнего исследования GPUBreach: после повреждения записи таблицы страниц второе CUDA-ядро получает доступ к памяти за границами процесса. Тройная тихая ошибка дала root-доступ к хосту при включённом IOMMU, а двойная неисправимая ошибка использовалась для повышения привилегий при отключённом IOMMU.
Затронутые устройства и меры защиты
Шаблоны GPUThor не дали битовых сбоев на протестированных NVIDIA A10, L4, L40, RTX 4090 и A30. Авторы связывают результат с отличиями реализации TRR в GDDR6 новых поколений, GDDR6X и HBM. A100 и H100 в набор тестов не входили.
Уязвимость сообщили NVIDIA 29 апреля 2026 года, а также Google, Microsoft и AWS; публичный код атаки планируют выпустить 15 ноября 2026 года. CVE для GPUThor не назначен, о применении в реальных атаках не сообщалось, а готового исправления нет. Исследователи указывают, что полное решение потребует более сильной коррекции многобитовых ошибок и аппаратных механизмов защиты DRAM в будущих GPU.
Для организаций практический вывод состоит в ограничении недоверенных CUDA-нагрузок, отказе от совместного использования GPU между арендаторами и контроле счётчиков ошибок ECC. ECC по-прежнему повышает порог атаки, но результаты GPUThor показывают, что считать его достаточной защитой нельзя.

