NVIDIA製GPUのECCをすり抜ける「GPUThor」、研究チームが約1.1分でroot権限昇格を実証

2026年8月28日 13:38

トロント大学の研究チームは2026年8月25日、NVIDIA製GPUを対象とする新たなRowhammer攻撃「GPUThor」を公表した。GDDR6を搭載したAmpere世代のワークステーション向けGPUで、システムレベルECCを有効にした状態でもサービス妨害やホストのroot権限への昇格が可能になることを示した研究である。

研究チームによると、RTX A6000を使った一連の権限昇格攻撃は約1.1分で完了した。攻撃には、対象GPU上で非特権のCUDAプログラムを実行できることが前提となる。コードと関連成果物は、オランダ・ハーグで開催されるACM CCS 2026の開幕日である2026年11月15日に公開される予定だ。

■4機種で高密度のビット反転を確認

GPUThorは、GDDR6を搭載したAmpere世代のワークステーション向けGPUであるRTX A4000、A4500、A5000、A6000を対象としている。研究チームは4機種すべてでビット反転を確認し、非特権のCUDAプログラムからサービス妨害や権限昇格につなげられることを示した。

ECCを無効にした測定では、GPUメモリ1GB当たり約7万2,000~37万7,000件のビット反転を記録した。機種別ではRTX A5000が約37万7,000件、A6000が約11万4,000件、A4500が約7万5,000件、A4000が約7万2,000件だった。測定はGPUごとに4つのメモリバンクを対象に、各バンクで24時間実施されている。

この結果は、同研究グループが2025年に発表したGPUHammerの約4,548~2万3,597倍に当たる。RTX A6000では、GPUページテーブル内から権限昇格に利用できるビット反転を探し、rootシェルを取得するまでの一連の攻撃時間が、GPUHammerのパターンを用いた場合の約21.9時間からGPUThorでは約1.1分へ短縮されたという。

■ECCをすり抜けるマルチビットエラー

対象GPUのシステムレベルECCには、1ビットのエラーを訂正し、2ビットのエラーを検出するSECDED方式が使われている。従来のGPU向けRowhammer攻撃はビット反転の密度が低く、ECCを有効にすることで攻撃に利用できるエラーを抑えられていた。

GPUThorは、同じECC保護単位内で複数のビット反転を発生させるほど高密度のハンマリングを実現した。研究チームはECCを有効にした環境で、検出はできるが訂正できない2ビットエラーを387件、誤った値に訂正される3ビットエラーを2件確認した。

SECDEDでは、特定の3ビットエラーが1ビットエラーのように見える場合があり、訂正処理を経ても誤ったデータが残る可能性がある。GPUThorは、このようなサイレントデータ破損を利用し、ECC有効時にもGPUページテーブルを書き換えて権限昇格につなげた。

ECCのエラーカウンタ監視は、検出可能なエラーや攻撃途中で生じる訂正済みエラーを把握する手掛かりになる。一方、研究チームは3ビット反転によるサイレントデータ破損では観測可能な痕跡が残らない場合があるとしており、監視だけで攻撃を完全に捕捉することは難しい。

■非均一なアクセスパターンで攻撃強度を向上

Rowhammerは、DRAMの特定の行を繰り返しアクティブ化することで隣接行のデータにビット反転を生じさせる現象を利用する。DRAMには、頻繁にアクセスされる行を捉えて周辺をリフレッシュするTarget Row Refresh(TRR)などの緩和策がある。

GPUではさらに、複数のメモリアクセスをまとめるコアレッシングがハンマリングの効率を下げる。研究チームはAmpere GPUとGDDR6の挙動を調査し、異なるワープから同じ行の異なるキャッシュラインへ発行したアクセスが、別々のDRAMアクティベーションとして残ることを確認した。GPUThorでは、各ワープが攻撃対象の行へ発行するアクセスを制限しながら複数のワープへ分散させ、アクセスがまとめられることを防いでいる。

また、研究チームはビット反転の再現性を手掛かりに、検証した環境のTRRに相当する緩和処理が、おおむね72回のDRAMリフレッシュ間隔ごとに働くと推定した。GPUThorは、この周期に同期する6リフレッシュ間隔の非均一なパターンを採用する。攻撃対象の行を多くアクティブ化しつつ、TRRの追跡をかく乱する囮の行も組み込む方式だ。

これらの工夫により、攻撃対象行に対するアクティベーション数は、従来の均一なGPU攻撃パターンの約6.6倍となるリフレッシュウィンドウ当たり約11万回に達したという。

■ECC有効のRTX A6000で2種類の攻撃

研究チームは、システムレベルECCを有効にしたRTX A6000で、サービス妨害とホストのroot権限への昇格を実証した。

サービス妨害では、訂正不能なマルチビットエラーによって約2時間に1回GPUをリセットさせ、実行中の処理を停止させた。攻撃を継続すると、GPUは訂正不能エラーの発生した行を代替するリマッピング能力を使い切り、約1日で交換が必要な状態を示したという。

権限昇格では、GPUページテーブルのビットを反転させることで非特権プロセスから任意のGPUメモリへアクセスし、最終的にホスト上でrootシェルを開いた。研究チームは、ECCを有効にしたGPUでRowhammerからホストレベルの権限昇格まで実証した初の研究だとしている。

攻撃成立の前提は、対象GPU上で攻撃用の非特権CUDAカーネルを実行できることだ。共有GPUで相互に信頼関係のない利用者へ実行環境を提供する場合や、ローカル環境で信頼できないGPUコードを実行する場合が主なリスクとなる。

■確認された影響範囲は4機種

GPUThorによるビット反転が確認されたのは、研究チームが検証したRTX A4000、A4500、A5000、A6000の4機種である。同じ攻撃パターンを使った試験では、GDDR6XやHBM2eを搭載するGPUでビット反転は観測されなかった。

研究チームは、HBM、GDDR6X、GDDR7などでは内部の防御構造が異なる可能性があるとしている。現在のパターンでビット反転が観測されなかったことは、別のアクセスパターンによる影響まで否定するものではない。

A100やA800を含むほかのAmpere世代GPU、新しい世代のGPU、HBM3やGDDR7を採用する製品については、GPUThorによる同様の攻撃が実証されたとはいえない。NVIDIAも、RowhammerのリスクはDRAMデバイス、メモリ技術、プラットフォーム設計、システム設定、DRAM内部の防御機構によって異なるとしている。

■NVIDIAはSYS-ECCとIOMMUの併用を推奨

NVIDIAは2026年8月21日付でGPUThorを反映したRowhammer対策のセキュリティ通知を公開し、単一の対策に依存しない多層防御を推奨している。

第1の対策は、対応製品でSYS-ECCを有効にすることだ。SYS-ECCは多くの1ビットエラーを訂正し、マルチビットエラーの多くをサイレントデータ破損ではなく検出可能な障害に変えるため、依然として重要な防御層となる。

第2の対策は、ホスト側のIOMMUまたは同等のDMA分離を有効にし、実際に機能していることを確認することだ。GPUThorで実証された権限昇格は、GPU側のメモリ破損を足掛かりに、権限を持つホストメモリへアクセスする経路を利用する。適切に構成されたIOMMUは、GPUがアクセスできるホストメモリの範囲を制限し、この経路を遮断または大幅に制約できる。

NVIDIAはこのほか、訂正可能・訂正不能なDRAMエラー、予期しないGPUのリセット、行のリマッピングなどを監視し、GPUの共有方式、仮想化、IOMMU設定、ワークロード分離をまとめて評価するよう求めている。研究チームも、相互に信頼できない利用者による単一の物理GPUの共有を避け、信頼できないCUDAコードの実行を制限するよう推奨している。

■コード公開は11月15日の予定

研究チームは2026年4月29日、GPUThorをNVIDIAへ報告し、Google、Microsoft、AWSにも通知した。研究成果はNVIDIAの要請により8月25日まで公開が差し控えられた。

論文は、2026年11月15~19日にハーグで開催されるACM SIGSAC Conference on Computer and Communications Securityに採択されている。研究チームは、コードと関連成果物を開幕日の11月15日に公開する予定だ。

対象GPUを運用する組織は、コードの公開を待たず、SYS-ECCとIOMMUの有効化、エラー監視、GPU共有と信頼境界の見直しを進める必要がある。

■将来のGPUには強化されたハードウェア防御が課題

研究チームは、より根本的な対策として、複数ビットのエラーへ対応できる強力なECCと、行ごとのアクティベーション数を追跡するハードウェア防御を挙げている。

ECCについては、SECDEDより強力なChipkillクラスの方式が候補となる。複数ビットのエラーに対する耐性を高められる一方、研究チームによれば、GDDR6のSECDEDですでに必要となっている6.25%の容量に加え、さらなる容量や帯域幅の負担が生じる。

もう1つの方向は、Refresh Management(RFM)やPer-Row Activation Counting(PRAC)に相当する仕組みの導入だ。メモリ行のアクティベーション回数を追跡し、しきい値を超える前に周辺行をリフレッシュすることで、ビット反転に必要な回数までアクセスが蓄積するのを抑える考え方である。研究チームは、こうした防御を将来のGPUメモリへ取り入れることが、Rowhammerの原因に対処するうえで重要だとしている。

■注目ポイントQ&A

●NVIDIA GPUでECCを有効にしていればGPUThorから保護されますか?

ECCだけでは十分ではありません。SYS-ECCは多くのエラーを訂正または検出できるため有効にするべきですが、GPUThorは同じ保護単位内に複数のビット反転を起こし、SECDEDでは訂正できないエラーやサイレントデータ破損を発生させます。NVIDIAはSYS-ECCとホストIOMMUまたはDMA分離の併用を推奨しています。

●どのGPUで影響が確認されていますか?

GDDR6を搭載したAmpere世代のワークステーション向けGPUであるRTX A4000、A4500、A5000、A6000の4機種です。ほかの製品については、メモリ技術やプラットフォーム構成によって挙動が異なり、同じ影響が確認されたとは限りません。

●一般向けGeForceも影響を受けますか?

今回のECC有効環境での攻撃実証は、RTX A4000、A4500、A5000、A6000を対象としたものです。研究チームが試した同じパターンでは、GDDR6Xを搭載したGPUでビット反転は観測されませんでした。未検証の製品まで影響範囲を広げて判断することはできません。

●クラウド事業者はコード公開までに何をすべきですか?

対応製品でSYS-ECCを有効にし、ホストIOMMUまたは同等のDMA分離が機能していることを確認する必要があります。加えて、相互に信頼できない利用者による物理GPUの共有を見直し、ECCエラー、GPUリセット、行のリマッピングなどを監視する多層防御が推奨されています。

●ECCの監視でGPUThorを検知できますか?

一部の兆候は検知できます。訂正可能・訂正不能なエラーの増加や予期しないリセットは監視の手掛かりになります。一方、3ビット反転によるサイレントデータ破損では観測可能な痕跡が残らない場合があるため、監視だけに依存することはできません。

元記事: Rowhammer Breaks NVIDIA ECC: Root Shell in Under Two Minutes Before Code Goes Public

関連記事

最新記事