GPUThor обходит ECC на NVIDIA RTX A6000 и позволяет получить root-доступ к хосту
Исследователи Университета Торонто описали атаку Rowhammer на ряд профессиональных видеокарт NVIDIA с памятью GDDR6. Для её проведения достаточно возможности запустить непривилегированное CUDA-ядро на целевом GPU.

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