- GPUThorは、NvidiaのGPUに搭載されたECCを突破し、ホスト上でrootシェルの取得に成功した初のRowhammer攻撃です
- 影響を受けるのは、GDDR6メモリを搭載したAmpere世代のワークステーション向けカード4機種、RTX A4000、A4500、A5000、A6000です
- GPUのメモリコアレッシングを回避し、Target Row Refresh(TRR)の緩和策がリフレッシュ間隔72回に1回しか発動しないことを突き止めたことで実現した非均一なハンマリング手法により、従来攻撃の実に6.6倍のハンマリング強度を実現しています
トロント大学の研究者4名が、Rowhammer攻撃の新手法「GPUThor」を公表しました。この手法は、Nvidiaがこの1年間、まさにこの種の攻撃への防御策として推奨してきたエラー訂正機能を突破するものです。
Chris S. Lin氏、Joyce Qu氏、Aditya Rajeev氏、Gururaj Saileshwar氏の4名は、ACM CCS 2026において、自らの手法とその後の調査結果をまとめた論文を発表する予定です。
今回の攻撃が標的とするのは、GDDR6メモリを搭載したAmpere世代のワークステーション向けカード、具体的にはRTX A4000、A4500、A5000、A6000です。この手法により、権限を持たないCUDAプログラムから、ホスト上のrootシェルへと到達できてしまいます。
従来の攻撃とは重要性が桁違い
Rowhammer攻撃は、あるDRAM行を繰り返し活性化させることで、物理的に隣接する行のセルから電荷が漏れ出し、ビット反転を引き起こす仕組みを悪用します。攻撃者は被害者のデータに直接触れることがないため、改ざんやサンドボックス脱出、権限昇格などにつながる前段階の攻撃手法として非常に有効です。
今回の手法は、これらのGPUでECCを有効にした際に付随するTRRと呼ばれるチップ内対策が存在するにもかかわらず実現可能です。TRRは、特定のメモリ行がどれだけの頻度で活性化されているかを追跡し、悪意あるビット反転が発生する前に隣接行を自動的にリフレッシュすることで、Rowhammer攻撃を防ぐことを狙った仕組みです。
この方式は理論上はうまく機能し、Rowhammer攻撃が均一にハンマリングを行う場合にはそれなりの防御力を発揮します。問題が生じるのは、GPUThorのような手法が非均一なハンマリングを用いる場合で、この場合は攻撃が成功する可能性が格段に高まります。非均一ハンマリングは決して目新しい手法ではなく、よく知られたBlacksmith攻撃ベクトルによってすでにCPU側で成功実績がある手法です。
GPUThorは、この18か月間でほぼ同じ研究グループから発表された3件目の攻撃です。2025年のGPUHammer、そして今年発表されたGPUBreachに続くものであり、重要な意味を持つのは、これまでの2件がユーザーがECCを有効化するコマンドを入力した瞬間に無効化されていたためです。
ECCは、報告されてきたRowhammer攻撃に対するNvidiaの主要な対応策でしたが、現状のままでは有効な解決策とは言えなくなる可能性があります。研究者らは非均一なハンマリングを用いることで、Nvidiaのこの技術による影響を圧倒的に受けやすいAmpere世代GPUに対し、新たな攻撃経路を切り開きました。
ECCを無効化した状態では、GPUThorはAmpere世代の4機種のカードで1ギガバイトあたり72,000から377,000件のビット反転を発生させ、中でもNvidiaのA5000が最も脆弱であると報告されています。これは、BlacksmithがDDR4で達成する1ギガバイトあたり約550,000件の反転に迫る数値であり、憂慮すべき事態です。GPUのRowhammerは、いまやCPUのRowhammerと同水準に達しています。
ECCを有効化した状態でも、研究者らによれば保護機能は問題を軽減はするものの完全には緩和できず、2ビットエラーおよび2件の3ビットエラーが発生し、この手法は誤った値を選択することで「修正」を行ってしまったとのことです。
ECCを有効化したRTX A6000では、GPUThorの手法により2時間ごとにGPUリセットが強制的に発生し、GPU上で稼働中の全プロセスが強制終了させられます。その結果、このGPUは1日以内に「RMA-read」の状態にあるとフラグを立ててしまいます。
研究チームは2026年4月29日にこの攻撃手法をNvidiaに開示し、その後GoogleやMicrosoft、AWSにも開示した上で、8月25日まで公表を差し控えていました。コードの公開は11月15日に予定されていますが、現時点では本問題に対するCVE情報や修正パッチの展開は行われていません。