電圧グラッチングでマイニングカードのA100を引き出すには

2026/11/11 19:48

電圧グラッチングでマイニングカードのA100を引き出すには

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

NVIDIA の GA100 グラフィックプロセッサには、「Fuseless」eFuses を悪用してハードウェア制約を迂回できる致命的な電圧故障注入(VFI)脆弱性があります。PWMVID シグナルをインターセプトし、パワーマネジメント回路に特定の 3 パルス・グリッチパターンを注入することで、研究者らはチップを損傷させることなくセキュリティコントロール (

OPT_SECURED_BURN_FEATURE_ENABLE
) をリセットできます。この技術により、計算ユニット(TPC)およびメモリパーティションの「_DISABLE」マスクがクリアされ、物理的に約 80 GB の HBM を搭載しているにもかかわらず制約された 8 GB カード(例:CMP 170HX)が、完全機能の高容量ユニットへと変換されます。これにより、すべての 128 つの物理的な計算ユニットへのアクセスが可能になり、キャパシターマッドを施した GA170HX スキューの場合には PCIe Gen4 の全速度も利用可能となり、通常販売版と比較して約 1.2 倍の高いパフォーマンスが実現します(〜120–126 SMs を使用し、収率安全性重視の 108 SMs に留める標準仕様よりも)。このアンロックにより、NVLink や ECC メモリサポートといった高度な機能へのアクセスも可能となりますが、MIG モジュールなど一部のモジュールについては著者による検証は行われていません。NVIDIA への独立した発見と事前開示の後、この方法はコストパフォーマンスを大幅に向上させる一方で、収率に基づく fuses の制限が無効化されることで業界のセキュリティモデルに挑戦します。

本文

GA100 チップ:電圧故障注入によるファス解除と A100 性能解鎖

概要

  • 脆弱性の発見: NVIDIA GA100 チップ上で、**電圧故障注入(VFI: Voltage Fault Injection)**を行うことで、任意のファス(Fuse)をブロー(焼損)させることを可能とする脆弱性を発見しました。
  • 実装結果: 同手法により、保有する CMP 170HX 8GB カードを実質的に「A100-80G」として機能させることに成功しています。
  • 性能向上: 市販用の A100 は収量確保のため一部の SM(スコープユニット)が無効化されていますが、解鎖後のカードは稼働可能なすべての SM(ダイロットによる確率論〜120〜126 個)を有効化しています。
    • パフォーマンス: 市販の A100 よりも約 1.2 倍高速で動作します。
  • 機能解鎖: NVLink、PCIe Gen4、NVJPG、NVDEC、MIG などの CMP で無効化されている機能もすべて解鎖可能です(一部は個別にテスト未実施)。

GPU のインベントリとトポロジー

  • GPU 0: メモリ総量
    081920 MiB
    、デバイス ID
    0x20C210DE
  • GPU 1: メモリ総量
    081920 MiB
    、デバイス ID
    0x20C210DE
  • CPU アフィニティ: 0–127 | NUMA: 0

nvidia-smi 出力結果(一部)

$ nvidia-smi --query-gpu=index,pci.bus_id,pci.device_id,name,memory.total; nvidia-smi topo -m
index, pci.bus_id, pci.device_id, name, memory.total [MiB]
0, 00000000:81:00.0, 0x20C210DE, NVIDIA Graphics Device, 81920 MiB
1, 00000000:C1:00.0, 0x20C210DE, NVIDIA Graphics Device, 81920 MiB

	GPU0	GPU1	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	NV12	0-127	0		N/A
GPU1	NV12	 X 	0-127	0		N/A

FP16 FMA スループット比較

モデル市販用 A100 に対する TFLOP/s説明
市販用 A1001.00x (72.488 TFLOP/s)ベースライン
ハードウェア解鎖 CMP 170HX1.18x (85.858 TFLOP/s)生の OpenCL 出力より

OpenCL 実行結果(一部)

|----------------'------------------------------------------------------------|
| Device ID      | 0                                                          |
| Device Name    | NVIDIA Graphics Device                                     |
| Compute Units  | 124 at 1410 MHz (7936 cores, 22.380 TFLOPs/s)              |
| FP16   Compute | **85.858 TFLOPs/s** ( 4x )                                 |
| Memory Bandwidth ( coalesced read      )                       1883.17 GB/s |
-----------------------------------------------------------------------------|

背景と脆弱性概観

  • NVIDIA の設計: ファスは製品区分化やセキュリティ機能のために使用されています。通常、ファスをブローさせることで権限を「制限された状態」にするのが目的ですが、GA100 チップでは**「より多くのアクセス権」**を得るための関数も存在します。
  • リスク: 適切に設計されたシステムでは、ブローされたファスは元に戻せませんが、NVIDIA のこの設計では、さらに多くをブローすることで制限を緩和することが可能です!
  • 謝辞: 本研究は Jon Pry および GA100 チップの仕組みを理解する多くの先行研究の上に構築されています。脆弱性の情報は一般市民にとって最善の利益であるため、独立した研究者が発見直後に公表しました。発表前に NVIDIA の製品セキュリティチームへ開示済みです。

GA100 バージョンと SKU 比較

GA100 は A100 をはじめ約 20 の異なる SKU に搭載されています。製造時の状態では以下の機能が含まれていますが、NVIDIA は収量制御のため eFuses(エレクトロニカル・フュージ)を使用し、未差別化のチップを制限されたバリエーションに変換しています。

表:SKU 比較(箱出し状態 vs ソフトウェア解鎖 vs VFI)

機能CMP 170HX 8GBCMP 170HX 10GB
フレームバッファ8 GB -> 64-80 GB (VFI)10 GB -> 40-48 GB (VFI)
SM (スコープユニット)70 -> 120-128 (VFI)70 -> 120-128 (VFI)
PCIe ジェネレーションGen 1 -> Gen 4 (VFI)Gen 2 -> Gen 4 (VFI)
NVLinkなし -> あり (VFI)*なし -> あり (VFI)*
ECCなし -> あり (VFI)**なし -> あり (VFI)**
MIG (Multi-Instance GPUs)なし -> あり (VFI)**なし -> あり (VFI)**
NVDEC0 -> 54 (VFI)***0 -> 54 (VFI)***
  • *: NVLink 有効化には PCB の部品追加が必要です。
  • **: 未テスト。
  • ***: VFI はダイの収量に基づいて構成を有効にします(以前はより高い値が主張されていましたが、特定の構成に限られます)。

ハードウェア制限とファス機構

NVIDIA は一つのチップからデータセンター用 A100 とマイニング用 CMP の両方を製造するためには、ファスコントローラーの仕組みを理解する必要があります。

ファスコントローラーの役割

  • 構造: 16,384 個(32 コラム×512 ラウ)の eFuses と論理回路から構成されます。
  • 機能:
    1. ファスの読み出しとプログラミングを実行。
    2. 下の層にあるフーゼを保護。
    3. チップ動作や有効化機能を決める**「オプションワード」**を提供。

eFuse の分類

各 eFuse は 2 つの状態(ブロー済み=1、未ブロー=0)のいずれかであり、512 ラウは以下の 4 つの領域に分けられます。

  1. 通常のフーゼ (Rows 0-221)
    • 単一(ペアの)フーゼがオプションワードに対応(例:
      OPT_ENABLE_FUSE_PROGRAM
      )。
    • プライマリとレダンダントという冗長性を持つ。
    • 不可逆: ブローすると恒久的に元に戻せません。
  2. ファスレスフーゼ (Fuseless fuses, Rows 222-487)
    • JTAG チェーン形式でオプションワードを符号化するシステム。
    • VFI を使用して解鎖できる大部分の機能に関係。
    • 可逆的: 新しい FF ラウを書き込むことで容易にクリア可能(通常条件下では禁止)。
  3. IFF fuses (Rows 487-512)
    • 本稿のスコープ外ですが、ファスコントローラーのオンザフライ再プログラミングに有用。
    • 生産用カードではアクセス不能。
  4. RIR fuses (512 ラウ以外の領域)
    • TSMC から提供される「ファス修復」機構。
    • 8 GB の CMP では、16 ワードのうち 15 個が「noop(何もしない)」であり、実用的ではありません。

ファスレスフーゼレコード形式

各 FF ラウは 32 ビットのレコードです。後方のレコードが優先されます。

  • 例:
    0x0fe805c1
    はチェーン 1、ブロック 23、データ
    0x0fe8
    を意味します。
  • 動作: 物理的に元に戻せず、新しいラウが古い 16 ビットブロックを置き換えます。

重要なオプションワード(-disable)

以下の表は、GA100 の解鎖においてクリアすべき

_DISABLE
オプションワードを示しています。

命名されたオプション推測された FF ロケーション用途
NV_FUSE_OPT_FBIO_DISABLE
チェーン 1 ビット 83-106; ブロック 5-6メモリ I/O フロアスイープ(遮断)
NV_FUSE_OPT_FBPA_DISABLE
チェーン 1 ビット 107-130; ブロック 6-8メモリサブパーティションフロアスイープ
NV_FUSE_OPT_GPC_DISABLE
チェーン 1 ビット 131-138; ブロック 8GPC フロアスイープ
NV_FUSE_OPT_TPC_GPC*_DISABLE
チェーン 1 ビット 187+8i...; ブロック 11-158 つの TPC マスク
NV_FUSE_OPT_PES_DISABLE
チェーン 1 ビット 251-274; ブロック 15-17PES フロアスイープ
NV_FUSE_OPT_FBP_DISABLE
チェーン 1 ビット 307-318; ブロック 19フレームバッファパーティションフロアスイープ
NV_FUSE_OPT_ROP_L2_DISABLE
チェーン 1 ビット 319-342; ブロック 19-21ROP/L2 フロアスイープ
NV_FUSE_OPT_NVLINK_DISABLE
チェーン 1 ビット 368-370; ブロック 23NVLink 無効化マスク
NV_FUSE_OPT_DISABLE_GEN3_SPEED
チェーン 2 ブロック 39 (ビット 1/9 未確定)PCIe Gen3 スピード制限
NV_FUSE_OPT_PCIE_MAGIC_BITS_D[25]
チェーン 2 ブロック 47 ビット 3Gen4 スピード無効化フラグ
NV_FUSE_OPT_DISABLE_SW_OVERRIDE
-ソフトウェアオーバーライド解除(最重要)

重要: フロアスイーピング (Floorsweeping) は、オプションが電源オフ状態にする処理を指します。機能構成ワードを変更するだけでは不十分で、FF 書き込みによる「フロアスイープ解除」が必要です。


電圧故障注入 (VFI) の仕組み

ファスブローには

FUSEADDR
,
FUSEWDATA
, および
FUSECTRL
レジスタへの書き込みが必要ですが、通常ホストはこれらにアクセスできません。「暗号マイニングにおける Canary(カンアリ)への ROP」を開発し、権限レベルのマスクを開放しました。

鍵となるオプションワード:SBFE

  • OPT_SECURED_BURN_FEATURE_ENABLE (SBFE):
    • すべての生産用カードでは
      1
      に設定されています。
    • 1
      の場合: FPF(保護済みフーゼ)のみブロー可能。FF フーゼを焼損させる方法はない。
    • 0
      の場合: 任意のアドレスでファスプログラミングが可能。これが解鎖の鍵です。

グリッチャー(故障注入器)のセットアップ

  • 設計: GPT-6 Astra に依頼し、CMP PCB の PWMVID シグナルにアクセスする STM32G4 ベース基板を設計しました。
  • 動作:
    1. NVIDIA の標準電圧レギュレータ規格(PWMVID)をインターセプト。
    2. MP2888B VRM ドライバー IC に独自の波形を供給する。
  • 接続要件:
    1. NVVDD から電圧検出用のタップ。
    2. PWMVID シグナルをタップ。
    3. GA100 と VRM IC 間の 0402 0Ω抵抗を取り外す。

グリッチシーケンスと結果

手順

  1. カードの電源オフ → 電源オン(ACPI S0 -> S3 -> S0)。
  2. NVVDD が閾値を超えた直後にタイマーをスタート。
  3. タイマー同期で PWMVID を発火し、電圧波形を実行。
  4. 動作を観察し、必要に応じて再試行(グリッチ時間:1〜48 時間)。

実験的モデルと結果

起動ステージの推測は以下の通りですが、重要な発見が**「ゴールドロックス・グリッチ」**です。

現象結果
すべてのフーゼがゼロとして検知される壊滅的故障。PCIe Gen4 がトレーニング可能だが、カードは unusable。
RIR 読み込みの妨害RIR データ変更が見られるが、解鎖には至らない。
ゴールドロックス・グリッチ(成功)ラウ 0/1 のオプションワードのみを妨害し、他は無傷。
*
DISABLE_SW_OVERRIDE
が 0。
* SBFE が 0。
* PCIe ID:
20c2
。
* これにより任意のファスアクセスが可能になる。

突破のポイント:

  • 初期状態では
    ENABLE_FUSE_PROGRAM
    =0 でしたが、
    SENSE_CTRL
    コマンドを発行することで制御フーゼ由来のオプションワードをブロー値へ移行させることが可能になりました。
  • 例外:
    DISABLE_SW_OVERRIDE
    は 0 に留まりますが、これが解鎖のカギです。
    • DISABLE_SW_OVERRIDE
      =0 → SBFE が 0 設定可能。
    • SBFE=0 →
      ENABLE_FUSE_PROGRAM
      =1 となり、PLM をシャドウ化してホストによるアクセスが可能になります。

最終結果と解鎖後の状態

  • フレームバッファ: CMP 170HX 8GB の約 90% で、64-80 GB のフレームバッファに拡張されました(vLLM, SGLang 等完全動作)。
  • コンピュート: SM 数が 70→120〜128 個へ増加し、市販 A100 よりも約 1.2 倍高速です。
  • PCIe Gen4: FF オプションワードがクリアされることで達成可能(コンデンサ修正と組み合わせ必要)。
  • NVLink:
    OPT_NVLINK_DISABLE
    をゼロ化することで有効化可能(PCB 追加部品が必要な場合があります)。
  • MIG/NVDEC: これらの機能も解鎖されました。

将来の方向性

任意のファス焼損により、主に機能解鎖が可能になります。セキュリティ上の敏感性を持つオプションはデフォルトでブローされていない状態で出荷されており、これらを焼損することで新たなフーットホール(入り口)につながる可能性があります。また、多くのデフォルトブローされたセキュリティフーゼを未ブロー状態に保つ深いグリッチ状態も、デバッグ用 HS 実行などのルートとして利用可能です。


リファレンス

  1. Jon Pry, A Canary in the Crypto Mine: Defeating Stack Protection in a GPU Secure Coprocessor (2026).
  2. Amogh Munikote, cmpunlocker (2026).
  3. Otto Bittner et al., The Forgotten Threat of Voltage Glitching: A Case Study on Nvidia Tegra X2 SoCs (2021).
  4. NVIDIA, US9230678B2: Integrated circuit having an enhanced fuseless fuse structure (2016).
  5. TSMC, TEF07F32X32HD18_PHRM_C180518 electrical fuse datasheet, rev. 120A (2018).
  6. hexkyz and SciresM, Je Ne Sais Quoi - Falcons over the Horizon (2021).
  7. TechPowerUp, NVIDIA GA100 GPU specifications.
  8. GA100VFI ソースリポジトリ。

同じ日のほかのニュース

一覧に戻る →

2026/11/12 3:21

AWS エミュレーター

## 日本語翻訳: AWS Emulator は、実際の AWS アカウントが必要なく、サービス料金も発生しないローカルソリューションとして、AWS API に対するソフトウェアテストを提供します。リクエストを実際のサービスではなくローカルにルーティングします。ローカルマシン、開発サーバー、CI エンバーメント上で動作し、**Server モード**(CLI/SDK を使用、AI エージェントには AWS CLI v2.35.0+ が必須)、**Embedded モード**(Rust バイナリに直接統合)、および **direct integration** の 3 つの柔軟なモードをサポートします。グラフィカルインターフェースは備えていませんが、環境変数または直接的な HTTP クライアントコールによる設定で利用可能です。インストールには重要な前提条件が必要です:Rust ツールチェーン、C コンパイラ、少なくとも 100 GB のディスクスペース、マルチコアプロセッサ。Linux ユーザーはソースからビルド可能(x86_64/aarch64)ですが、Windows と macOS ユーザーは Docker を使用する必要があります。Cold full build はすべての crates をコンパイルしますが、その後の増分ビルドの方が高速です。Embedded モードも同様のビルドコストがかかります。デフォルトでは `127.0.0.1:9297` で HTTPS を提供し、自己署名証明書を使用します。Telemetry はデフォルトで有効となり、最小限の使用データを収集しますが(認証情報やコンテンツは除外)、CLI フラグ、環境変数、または構成ファイルによって無効にできます。本ソフトウェアは開発およびテスト用途のみを想定しており、本番環境またはセキュリティ用途には使用しないでください。ライセンスは CC0 1.0 Universal です(ベンダーコードについては Apache 2.0 の例外あり)。問題は GitHub Issues を通じて報告されます。

2026/11/11 16:03

Tim Peters が死去した

## Japanese Translation: Tim Peters の死去は、愛称「Timbot」として親しまれる彼が Python の歴史の基盤となる柱の一つを失ったことを象徴する。2001 年から 2014 年まで Python Software Foundation のステアリングコミーティーに在籍したピボタルフイグである Peters は、Python コードを実行した第 2 号人物であり、かつその核心メカニズムの主要な設計者の一人でもあった。彼の技術的遺産は膨大で、言語そのものを共設計し、「Python の禅」 (PEP 20) を著述し、Java および Android システムで標準となっている効率的なソートアルゴリズムである Timsort を開発した。これらのハイライトに加えて、pymalloc の改良、Py_ADDRESS_IN_RANGE や循環ガベージコレクターといった内部コンポーネントの最適化、簡易的なジェネレーターの基盤作りなどを行い、float オブジェクト、math モジュール、dict の最適化、weakref.txt、difflib、pickletools、tabnanny、doctest といった多くの必須モジュールにも寄与した。キャリア初期には Cray Research でスーパーコンピューター用のコンパイラ開発に携わり、Dragon Systems で音声認識ソフトウェアを開発した。彼のコード以外にも、彼はその忍耐強くユーモアに富んだメーリングリスト上の指導を通じてコミュニティを形作り、創業者である Guido van Rossum のスタイルによく似ていたことで知られ、「Timbot」という愛称もこの評判を反映している。彼は Python が int と float の間での混合演算をサポートするよう主張した。行政的な対立によってリーダーシップからの退任およびその後のステアリングコミーティーによる禁止措置を受けることとなったが、同僚らはそれを機に開発者の自由な支援を手放しなかったことを指摘している。

2026/11/12 6:24

ユナイテッド航空が、旅行者代わりのフライト予約においてAIエージェントの使用を禁止しました

## Japanese Translation: ユナイテッド航空は、フライトの予約やチェックインを実行することを人工知能(AI)エージェントから厳格に禁止しており、シームレスな自動化よりもセキュリティを最優先しています。この決定的な措置は、連邦法違反を防ぎ、支払い詳細や認証情報など、不正な AI ツールによって晒される可能性のある機密顧客データを保護することを目的としています。航空会社はまた、自律型エージェントが意図せぬ購入やマイレージプラスマイルの誤用を引き起こすことを懸念しており、AI によるチェックインは荷物验证を対面で行うことを要求する規制に違反する可能性もあるとしています。スウェーショアのような競合他社(フライト在庫を人気チャットボットに表示することを許可している)とは異なり、ユナイテッドはこれらのツールに対する直接予約チャンネルを即座に閉鎖しています。Google Flights などの集約プラットフォームを通じた通常の検索は引き続き利用可能ですが、高度な AI ボットを使用してチケットを予約したりチェックインを試みる場合は、人間による介入が必要となります。業界の分析家は、この変化が、AI ボットによって引き起こされる検索急増に伴う高いコストを回避し、顧客データに対する厳格な制御を維持することを目指すユナイテッドの意向を反映していると考えています。結局のところ、自動化された旅行管理ソリューションに依存している企業のワークフローを妨げることになっても、規制遵守を確実にするためにより航空会社はそのポリシーを調整しています。

電圧グラッチングでマイニングカードのA100を引き出すには | そっか~ニュース