NVIDIA製GPUでECCを突破する「GPUThor」攻撃が判明 ホストのroot権限奪取も可能に
要点
-
トロント大学の研究チームが、GDDR6メモリを搭載したNVIDIA製GPUに対する新たなRowhammer攻撃「GPUThor」を発表した。
-
NVIDIAが推奨していた防御策であるECC(誤り訂正符号)を無効化し、サービス妨害(DoS)やホストOSのroot権限奪取が可能とされる。
-
RTX A6000など検証された4モデルすべてで脆弱性が確認され、特にRTX A5000では1GBあたり約37万回のビット反転を記録した。
-
攻撃には非特権CUDAカーネルの実行が必要であり、研究者はGPU共有の回避やECCエラー監視などの対策を推奨している。
-
カナダ・トロント大学の研究チームは2026年8月27日、GDDR6メモリを搭載したNVIDIAのワークステーション向けGPUにおいて、エラー訂正コード(ECC:メモリ上のデータ誤りを検出・訂正する機能)による防御を無力化する新たなRowhammer攻撃「GPUThor」を公開した。
-
この攻撃は、メモリの特定行を連続アクセスして隣接セルのデータを書き換えるもので、GPUの動作停止(DoS)を引き起こすだけでなく、ホストシステムの最高権限であるrootシェルの奪取にまで至ることが実証されたという。
対象GPUと過去の研究からの経緯
検証で脆弱性が確認されたのは、Ampereアーキテクチャを採用した以下の4モデルである。
- RTX A6000(48GB GDDR6)
- RTX A5000(24GB GDDR6)
- RTX A4500(20GB GDDR6)
- RTX A4000(16GB GDDR6)
研究チームが各カードのDRAMバンクを24時間ハンマリング(連続アクセス)したところ、全モデルでビット反転(メモリ内のデータが意図せず反転する現象)が誘発された。
同チームは2025年7月にもGPU初のRowhammer攻撃「GPUHammer」を発表していた。当時はRTX A6000で1GBあたり16回のビット反転を発生させたものの、システムレベルのECCを有効化することで防げると報告されていた。NVIDIAもセキュリティ通知でECCの有効化を緩和策として案内していたが、今回のGPUThorによりその防御策が無力化された形となる。
不均等ハンマリングとGPU特性の悪用
GPUThorの核心は、「不均等ハンマリング(Non-uniform hammering)」と呼ばれる手法を採用した点にある。
これは標的行に隣接する攻撃行へのアクセス頻度を、DRAMの防御機構であるTRR(過剰アクセスから周囲の行を保護する機能)を撹乱するおとり行よりも大幅に高く設定し、防御をすり抜ける手法だ。従来のGPU攻撃が両者を同等の頻度でアクセスしていたのに対し、アクセス比率に偏りを持たせることで突破口を開いた。
また研究チームは、GPUの実行単位であるワープ(32スレッドの同期実行グループ)の特性を分析した。単一ワープ内の反復アクセスはメモリコントローラで1回のアクティベーションにまとめられてしまうが、異なるワープから同一行の別キャッシュラインへのアクセスは個別のアクティベーションとして通る仕組みを解明し、攻撃コードに組み込んだ。
さらに、対象のGDDR6メモリにおけるTRRがリフレッシュ間隔約72回に1回しか適用されない傾向を突き止め、これに合わせたアクセスパターンを構築したという。
最大37万回のビット反転とECCの誤訂正
4種類のGPUを用いた実験では、ECC無効時に1GBあたり7万2000回から37万7000回のビット反転が観測された。
最も影響が大きかったRTX A5000では1GBあたり37万7552回を記録し、前作GPUHammerの約2万3597倍、過去最強とされた「GDDRHammer」の約500倍に達したという。
16バイト単位の解析では、4枚全体で387回の2ビット反転と2回の3ビット反転が確認された(RTX A5000が2ビット反転306回、3ビット反転2回のすべてを占有)。
対象GPUが採用するSECDED方式のECCは、1ビット反転を訂正し2ビット反転を検出する。しかし、3ビットの反転が発生すると誤った訂正(誤訂正)を行ってしまい、検知されないデータ化けである「サイレントデータ破損(SDC)」を引き起こすことが明らかになった。
サービス妨害とホストのroot権限奪取
ECCを有効化したRTX A6000の実機では、1日の攻撃で11回の検出可能な訂正不能エラー(DUE)と1回のSDCが発生した。DUEは平均2時間に1回生じ、発生時にGPU上の全カーネルが強制停止するため、リセットするまで利用不能なサービス妨害(DoS)状態となる。
さらに研究チームは、過去のGPU特権昇格研究「GPUBreach」(2026年4月公開)のエクスプロイトコードを再利用した。
ページテーブルを脆弱なメモリ行に配置した上で隣接行をハンマリングし、エントリのページフレーム番号(PFN)を破損させることで、改ざんされたエントリを通じて別カーネルがプロセス外部のメモリへアクセス可能になる。
実験では、IOMMU(デバイスのメモリアクセスを制限・保護するハードウェア機構)が有効な環境で3ビット反転のSDCを用いてホストのroot権限を取得した。またIOMMUが無効な環境では、2ビット反転のDUEを利用してページテーブルエントリをCPUメモリに向け直し、プロセスの認証情報を書き換えることで特権昇格を達成したと報告されている。
攻撃の前提条件と推奨される対策
攻撃の実行には、共有GPU環境の同居ユーザーまたは単一環境で信頼できないコードを実行させるなど、対象GPU上で非特権のCUDAカーネルを起動できる環境が必要となる。
研究チームは対策として、異なるテナント間でのGPU共有を避けること、ハードウェアのECCエラーカウンターを監視すること、信頼できないCUDAワークロードの実行を制限することを推奨している。