GPUBreach: через видеопамять GDDR6 получили root-доступ к хосту — даже с IOMMU
Исследователи показали, как через RowHammer в GDDR6-памяти GPU получить root-доступ к хосту — даже с включённым IOMMU. Защиты для десктопных GPU пока нет.
Новости TprogerЕсли вы работаете с GPU в облаке или на общих серверах — появился новый класс атак, от которого пока нет надёжной защиты. Исследователи из Университета Торонто продемонстрировали, что через bit-flips в видеопамяти GDDR6 можно получить полный root-доступ к хост-системе — даже при включённом IOMMU.
Атака получила название GPUBreach и стала первым практическим доказательством того, что RowHammer-уязвимости в GPU-памяти позволяют не просто повредить данные, а полностью захватить машину.
Ключевые выводы
- GPUBreach — первая атака, которая превращает bit-flips в GDDR6-памяти GPU в полную эскалацию привилегий до root на CPU
- Работает даже при включённом IOMMU — ключевом механизме аппаратной изоляции памяти
- Атака позволяет: извлечь криптографические ключи из NVIDIA cuPQC, деградировать точность ML-моделей до 80%, получить root shell
- Затрагивает облачные ИИ-инфраструктуры, мультитенантные GPU-кластеры и HPC-среды
- На десктопных/ноутбучных GPU (без ECC) защиты пока не существует
Что такое RowHammer и почему это касается GPU
RowHammer — известная с 2014 года проблема DRAM-памяти: многократное обращение к одной строке памяти вызывает электрические помехи, которые переворачивают биты в соседних строках (0→1 или 1→0). Это подрывает базовые гарантии изоляции памяти в операционных системах.
Производители DRAM внедрили аппаратные защиты — ECC (коды коррекции ошибок) и TRR (Target Row Refresh). Но до недавнего времени считалось, что GPU-память неуязвима для RowHammer из-за архитектурных особенностей.
В июле 2025 года те же исследователи из Университета Торонто показали GPUHammer — первую практическую RowHammer-атаку на NVIDIA GPU с GDDR6-памятью. Она использовала многопоточное параллельное «простукивание» для обхода архитектурных защит. Результат — деградация точности ML-моделей до 80%.
GPUBreach идёт дальше: от порчи данных — к полному захвату системы.
Как работает GPUBreach
Атака состоит из трёх этапов:
- RowHammer на GPU page tables. Атакующий процесс (непривилегированный CUDA-ядро) вызывает bit-flips в таблицах страниц GPU-памяти, получая произвольный доступ на чтение/запись ко всей памяти GPU
- Обход IOMMU. Скомпрометированный GPU отправляет DMA-запросы в область CPU-памяти, которую IOMMU разрешает — буферы драйвера NVIDIA. Повреждая доверенное состояние драйвера, атака эксплуатирует баги безопасности памяти в ядерном модуле NVIDIA
- Эскалация до root. Через произвольную запись в ядро атакующий запускает root shell на хосте
GPUBreach показывает, что IOMMU недостаточно: повреждая доверенное состояние драйвера в буферах, разрешённых IOMMU, мы запускаем out-of-bounds запись на уровне ядра — полностью обходя защиту IOMMU без необходимости его отключать.
Ключевое отличие GPUBreach от параллельных исследований (GDDRHammer и GeForge): те тоже используют RowHammer на GPU page tables, но GPUBreach — единственная атака, которая достигает полной эскалации привилегий на CPU. GeForge требует отключённого IOMMU, GDDRHammer работает только на уровне GPU-памяти.
Что можно украсть
Через GPUBreach исследователи продемонстрировали три сценария:
- Утечка криптографических ключей из NVIDIA cuPQC (постквантовая криптографическая библиотека)
- Деградация ML-моделей — точность падает до 80% при работе на скомпрометированном GPU
- Root shell на хосте — полный контроль над машиной, включая доступ ко всем контейнерам и данным других пользователей
Это особенно критично для облачных ИИ-инфраструктур, где несколько клиентов делят одни и те же GPU. Атакующий в одном виртуальном окружении может получить доступ к данным и моделям соседей.
Как защититься
Единственная известная мера — включить ECC на GPU:
Если ECC выключен — включите (потребуется перезагрузка):
Но и ECC — не абсолютная защита:
- ECC корректирует 1-2 bit-flips, но атаки на DDR4/DDR5 уже показали возможность вызвать 3+ bit-flips — ECC такое не исправит
- На десктопных и ноутбучных GPU ECC недоступен — и защиты для них пока не существует
- Серверные GPU (A100, H100) поддерживают ECC, но его нужно явно включить
Часто задаваемые вопросы
Какие GPU уязвимы для GPUBreach?
Все GPU с памятью GDDR6, включая популярные серии NVIDIA GeForce RTX 30xx/40xx/50xx и серверные Tesla/A100/H100. На десктопных и ноутбучных GPU, где ECC недоступен, защиты нет. Серверные GPU с включённым ECC защищены частично.
Может ли GPUBreach затронуть облачные GPU-инстансы?
Да, это главная угроза. В мультитенантных GPU-средах (облачные ИИ-сервисы, HPC-кластеры) атакующий в одном виртуальном окружении может получить root-доступ к хосту и данным других пользователей. Облачные провайдеры уже уведомлены.
Чем GPUBreach отличается от обычного RowHammer?
Классический RowHammer работает с CPU-памятью (DDR4/DDR5). GPUBreach — первая атака, которая использует RowHammer в GPU-памяти (GDDR6) для эскалации привилегий до root на CPU. Ключевое достижение — обход IOMMU, который считался надёжной аппаратной защитой.
Можно ли эксплуатировать GPUBreach удалённо?
Напрямую — нет, атакующему нужна возможность выполнять CUDA-код на целевом GPU. Но в облачных средах это стандартная ситуация: каждый клиент с GPU-инстансом запускает CUDA-ядра. Также возможна эксплуатация через вредоносные ML-модели или CUDA-библиотеки.
Выводы
GPUBreach меняет модель угроз для GPU-вычислений. До сих пор GPU-память считалась изолированной от CPU — теперь это не так. Атака работает даже при включённом IOMMU, который был последним рубежом аппаратной защиты.
Для команд, использующих GPU в продакшене: проверьте, включён ли ECC на ваших серверных GPU. Для облачных провайдеров — это сигнал пересмотреть модель изоляции мультитенантных GPU-инстансов. Для пользователей десктопных GPU — на данный момент защиты не существует.
Полное исследование опубликовано командой Гурураджа Сайлешвара из Университета Торонто.