
NVIDIA Linux GPUドライバの2件の調査結果に対するPoCと証拠。ベンダーにより期待される/意図された動作としてクローズされたもの:NVMLを介したUID横断的なGPUプロセスのテレメトリ、およびピアアクセス・ティアダウンの競合状態による非特権のXid 31コピーエンジンMMUフォールト。
| # | 調査結果 | 分類 | ベンダーの対応 | ディレクトリ |
|---|
| 1 | NVMLを介したUID横断GPUプロセステレメトリ | 情報漏えい(CWE-200 / CWE-862) | 「期待どおりの動作」; 2026-08-20に書面で公開許可 | 01-nvml-cross-uid-telemetry/ |
| 2 | P2Pティアダウンレースを介した非特権Xid 31コピーエンジンMMUフォールト | GPUフォールト、非特権かつ決定的 | 「意図された動作でありバグではない」、2026-08-04にクローズ | 02-xid31-p2p-teardown-race/ |
ドライバ 595.71.05-open、A100-SXM4-80GB x4(NV4フルメッシュ、NVSwitchなし、MIGオフ)、 Ubuntu 24.04 / カーネル 6.8.0、CUDAツールキット 12.9でテスト済み。調査結果1は565.57.01-openでも再現。
調査結果1は実際のUID横断情報漏えいです。調査結果2は影響が未証明のフォールトです。 両者は 同等の強度ではなく、そのように提示されていません。
調査結果2は、非特権ユーザーがNVLink GPUペアを決定的にフォールトさせられること(5/5、PID帰属、
4/4のクリーンなネガティブコントロールに対して)を示しています。フォールトがトリガープロセスより
長く続くことは示していません。その測定は行われていません — ハーネスはプロービング前に反射的に
GPUをリセットし、ノードは再実行前にデプロビジョンされました。フォールトが自己回復することを示す
独立した証拠が2つあります:NVIDIAのXidカタログはXid 31を即時アクションRESTART_APPに分類しており、
GPU自身のRecovery Actionフィールドはリセット前にNoneと読み取られました。
02-xid31-p2p-teardown-race/のキル後カナリアを誰かが実行するまで、
これは爆発半径が未証明のフォールトとして扱ってください。サービス拒否ではありません。
NVLinkペアが余っているなら、その1つの実験がここで誰もが貢献できる最も価値の高いものです。 数分で完了します。
git clone https://github.com/abhinavagarwal07/nvidia-gpu-security-poc
cd nvidia-gpu-security-poc
./capture_env.sh # ホストのデバイス権限、ドライバ、トポロジ、/procオプションを記録
# 調査結果1 — 任意のCUDAワークロードを実行している2番目のユーザーが必要
(cd 01-nvml-cross-uid-telemetry/poc && make && ./nvml_harvest)
# 調査結果2 — NVLink接続された2つのGPUが必要。GPUペアをフォールトさせる。共有ハードウェアでは実行しないこと。
(cd 02-xid31-p2p-teardown-race/poc && ./build.sh && \
CUDA_VISIBLE_DEVICES=0,1 ./p2p_teardown_race_verbose --a 0 --p 1)
capture_env.shの出力は、当社の結果との差異を報告する際に添付するものです —
ls -l /dev/nvidia*、/proc/driver/nvidia/paramsのデバイスモードエントリ、/proc
マウントオプション(hidepid=マウントは調査結果1の結果を変えます)、トポロジ、ドライバおよびpynvml
バージョンを記録します。
調査結果2は意図的にGPUペアをフォールトさせます。カーネルログにXid 31エントリを生成し、
クリアにはnvidia-smi --gpu-resetが必要になる場合があります — またAmpere世代のNVLink/NVSwitch
システムでは、NVIDIAは致命的なトランクリングケースでの回復はファブリック全体の操作であり、
単一GPUの操作ではないと文書化しています。所有している、または中断の書面による許可を得ている
ハードウェアでのみ、他のテナントなしで実行してください。 すべての元のテストは、許可された
クラスタリースのもと、単一テナントの研究者管理ノードで行われました。
調査結果1は読み取り専用で受動的です。ドライバがすでにすべてのローカルユーザーに公開している テレメトリを読み取るだけであり、何も書き込まず、何も注入しません。
各ディレクトリのresults/には、元のマシン採点による実行ごとの判定JSON、キャプチャされた
dmesg Xid行、ポジティブおよびネガティブコントロール、オブザーバー権限監査、テストノードの
環境キャプチャが含まれています。GPU UUID、ハードウェアシリアル、ノードIPは編集済みです。
それ以外は変更されていません。
両調査結果のFull Disclosure投稿(ベンダー対応と開示タイムラインを含む): https://abhinavagarwal07.github.io
PoCコードとドキュメント: LICENSEを参照。