
2026/05/18 7:23
Fabricked:AMD SEV-SNP を破るために無限ファブリックの設定を誤ること
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
最も重要な教訓は、AMD SEV-SNP 機密コンピューティングを完全に侵害する、新しいソフトウェアだけの攻撃「Fabricked」が存在することです。この攻撃は、マルウェア製のハイパーバイザーが内部でコードを実行せずに安全な仮想マシンを完全に制御可能にし、システム起動前に無限ファブリックのルーティング規則への信頼性がない脆弱な UEFI または BIOS 設定から生じます。攻撃者は初期化中に必須のプロセッサ書き込みを停止させることができます。このエクスプロイトは、これらの信頼されていない構成に依存しており、UEFI とハイパーバイザーの特権が必要ですが、非機密の仮想マシンには影響せず、標準的な脅威モデルでは UEFI/ハイパーバイザーが信頼できると仮定されています。BreakFAST(制御ファブリック経由でのトラフィックのリダイレクト)といった過去の中継接続の脆弱性に関連しているものの、Fabricked は IOMS コンポーネントを独自に標的にし、RMP 初期化中に PSP 書き込みを停止させる点で、Intel TDX や Arm CCA および他のアーキテクチャとは異なります。この脆弱性は XCA インスタンスとして分類され、CVE-2025-54510 に割り当てられ、AMD Zen 5 EPYC プロセッサで確認されており、Zen 3、Zen 4、および Zen 4 システムに影響を与えます。同様の内部の脆弱性は Intel システムにも存在します(INTEL-SA-00960)。一般的にハイパーバイザーは信頼できると仮定されていることで AMD システムが保護されていますが、この特定のエクスプロイトは、脆弱なハードウェアに対してその保証を壊します。影響を受けた機器には、デプロイが安全であると見なされるまでにセキュリティの欠陥を修正するための即時のファームウェア更新が必要な勧告書(AMD-SB-3034)が発行されています。公開プロセスには 2026 年 4 月 14 日までのエンバーゴが含まれていました。
本文
Fabricked:Infinity Fabric の誤設定による AMD SEV-SNP の破綻
(USENIX Security 2026)
概要
機密性のあるコンピューティングは、クラウドサービスプロバイダーを信頼する必要なく、センシティブな計算処理とデータを遠隔リソースにオフロードすることを可能にします。AMD SEV-SNP など、ハードウェアベースの安全な実行環境(Trusted Execution Environment)は、機密仮想マシン(CVM:Confidential Virtual Machines)を作成することでこのことを実現しています。Fabricked では、AMD SEV-SNP を損ねるためにメモリーの経路を操作する新しいソフトウェア攻撃手法を提示します。メモリトランザクションの再ルーティングにより、悪意あるハイパーバイザーは安全な共处理器(PSP:Platform Security Processor)を欺き、SEV-SNP の初期化を適切に行わせないように誘導できます。これにより、攻撃者は CVM アドレス空間内で任意の読み書きアクセスを実行することができ、SEV-SNP の核心的なセキュリティ保証を破綻させることになります。
AMD SEV-SNP とは何か
標準的なクラウド環境では、テナントによる計算処理および使用中のデータが、潜在的に信頼できないクラウドサービスプロバイダーに晒されるリスクがあります。機密性のあるコンピューティングは、ホストから完全なデータプライバシーを保証する、アクティブなワークロードを隔離したハードウェアシールドされた環境である「機密仮想マシン(CVM)」を利用することでこの問題を解決します。「Secure Encrypted Virtualization-Secure Nested Paging」(SEV-SNP)は、AMD サーバー CPU 上で CVM を実現するための AMD ハードウェア拡張機能です。
Infinity Fabric とは何か
現代の AMD システムオンチップ(SoC)では、Chiplet アーキテクチャが採用されています。その基本的な概念は、個々の CPU ブロックを別々のダイ(chip die)で製造し、高速なインターコネクトを通じてそれらを連結することにあります。この設計は製造歩留まりを大幅に向上させる一方で、コンポーネント間の通信において複雑性を生じさせます。AMD はこれを解決するため、CPU コア、メモリーコントローラー、および周辺デバイス間での一貫性のあるデータ転送、メモリー経路付け、そしてアドレスマッピングを担当する「Infinity Fabric」を提案しています。プラットフォーム構成はシステムやブートシーケンス間で変化するため、Infinity Fabric は各 CPU のブートシーケンスにおいて動的に設定される必要があります。AMD はこの設定プロセスの一部をマザーボードファームウェア(通称:BIOS または UEFI)に委譲しています。
図 1: Infinity Fabric の概略図
Fabricked の概要
機密コンピューティングにおける脅威モデルでは、UEFI は信頼できず、クラウドプロバイダーによって制御されています。Fabricked ではまず、未信頼な UEFI が Infinity Fabric 設定の一部をロックダウンする役割を担っていることを特定しました。攻撃者として、私たちは UEFI を改変し、これらの API コールを実行しないようにします。これにより、SEV-SNP のマシン上のアクティベーションが行われてからも、無限ファブリック(Infinity Fabric)が攻撃者によって設定可能な状態のままとなります。
したがって、攻撃者すなわち悪意あるハイパーバイザーは、DRAM メモリトランザクションを再ルーティングするために Infinity Fabric を改変することができます。Infinity Fabric は CPU コアだけでなく、安全な共处理器(PSP)も DRAM に接続するため、PSP の DRAM に対する読み書き操作を操作することが可能です。私たちはこの攻撃者の能力を利用して SEV-SNP の初期化を損ねます。具体的には、SEV-SNP の初期化プロセス中に、PSP が CVM メモリのアクセス制御ルールを強制する重要なデータ構造「RMP(Realization of Memory Protection)」を設定していることを見出しました。この設定过程中に、PSP は DRAM に対してメモリー書き込みを実行する必要があります。これらの PSP 書き込みを行う前に Infinity Fabric を誤設定することにより、それらを丢弃(drop)させることが可能になります。その結果として、初期化されていない RMP が得られ、すなわち攻撃者が設置した不安全なデフォルトエントリが保持されたまま完全に変更されない状態になります。つまり、Fabricked を利用することで、攻撃者は SEV-SNP の初期化の一部を迂回し、成功したと錯覚させることができます。その後、被害者がそのプラットフォーム上で CVM を起動する場合、RMP エンフォースメントは実用上意味がないため、ハイパーバイザーはこれらのメモリーにアクセスすることができます。
図 2: Fabricked 攻撃の概要:SNP_INIT において、攻撃者は安全共处理器の DRAM への書き込みを悪意を持って誤経路化します。その結果として、不安全なデフォルトエントリを持つ RMP が得られます。
何が失敗したのか
Fabricked が可能となったのは、以下の 2 つの重大な欠陥によるものです:
- まず第一に、ハイパーバイザーは悪意を持って Infinity Fabric の経路ルールの一部を破損させることができるからです。
- 次に、安全共处理器がその後にメモリーリクエストを発行する際、これらの変ったルートルールが正しいルールよりも優先され、RMP の初期化に必要な書き込みを静かに誤誘導してしまうためです。
攻撃の複雑性
Fabricked は、100% の成功率を持つ完全に決定論的で、純粋なソフトウェアによるエクスプロイトとして動作します。これは被害者の CVM 内部で実行されるコードに依存せず、ハードウェアへの物理的なアクセスも必要としません。
影響するハードウェア
私たちは AMD Zen 5 EPYC プロセッサ上で SEV-SNP を動作させた際に脆弱性を確認しました。しかし、AMD の公式アドバisoryでは Zen 3 および Zen 4 プロセッサ向けのファームウェアアップデートも掲載されています。これらのシステムのパッチノートには CVE-2025-54510 の緩和策も記載されているため、Fabricked は Zen 3、Zen 4、および Zen 5 を影響するものと推測しています。
FAQ(よくある質問)
Q:この攻撃は SEV-SNP 以外の影響も持っていますか?
Fabricked は、AMD 内蔵のセキュリティ共处理器である PSP のメモリーアクセスを誤経路化します。私たちは SEV-SNP を超える脆弱性の影響については調査していません。
Q:Fabricked はクラウド上の非機密仮想マシンにも影響しますか?
いいえ。Fabricked は、Infinity Fabric を再設定するために悪意あるハイパーバイザーおよび UEFI を前提としています。非機密 VM の脅威モデルにおいては、ハイパーバイザーと UEFI は信頼できると考えられています。
Q:攻撃を行うための要件は何ですか?
攻撃者が Fabricked 攻撃を成功させるためには、UEFI およびハイパーバイザーの権限が必要です。
Q:この攻撃シナリオは現実的でしょうか?
私たちは AMD が SEV-SNP に対して定義した脅威モデルで動作しています。AMD は UEFI を明示的に信頼していないため、攻撃者は UEFI を改変することができます。さらに、機密コンピューティングがクラウドプロバイダーからのセンシティブデータの保護を目的としていることは言うまでもなく、クラウドプロバイダーはカスタムの UEFI インプリメンテーションを持っていると考えることができます。
Q:なぜ名前が「Fabricked」なのか?
私たちの攻撃は、SEV-SNP を破壊(brick)するために Infinity Fabric を誤設定します。そのため、この攻撃を「Fabricked」と呼びます。
Q:AMD からの対応は何ですか?
AMD はこの攻撃を確認し、修正をリリースしました。詳細については AMD のアドバisory ページをご覧ください:https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3034.html
Q:これには Arm CCA や Intel TDX への影響がありますか?
現在の手口の攻撃は Intel TDX や Arm CCA では機能しません。ただし、Intel システム内で同様の脆弱性が見つかったことは INTEL-SA-00960 で内部報告されています。
Q:この攻撃は他のバージョンの SEV(例:SEV-ES)にも適用されますか?
いいえ。AMD SEV および SEV-ES はゲストの完全性を保証せず、そのため広範に「設計上の不具合」と考えられています。この理由から、私たちは私たちの攻撃を SEV および SEV-ES に対して評価していません。
Q:Fabricked のロゴを利用できますか?
もちろん、ロゴは自由に使用できます。
Q:なぜ Fabricked は XCA 攻撃クラスの事例なのか?
Fabricked は相互接続(インターコネクト)を誤設定し、機密コンピューティングのセキュリティ保証を破綻させるため、XCA 攻撃に該当します。
Q:BreakFAST とどう違うのですか?
Fabricked と BreakFAST の違いは、Infinity Fabric で再設定するコンポーネントおよびその再設定の結果にあります。Fabricked は IOMS を対象とし、一方 BreakFAST は I/O クロスバーを 대상으로します。Fabricked では DRAM に到達すべき PSP の書き込みを丢弃し、BreakFAST では PSP の読み書きを Control Fabric へ再誘導します。したがって、BreakFAST では攻撃者が Control Fabric の一部を制御することを可能にするのに対し、Fabricked は SEV-SNP の完全性保護を無効にします。
著者
- Chris Wech(クリス・ウェク)
- Benedict Schlüter(ベネディクト・シュリュター)
- Shweta Shinde(シュвета・シンデ)
責任ある公開(Responsible Disclosure)
脆弱性については、2025 年 8 月 3 日に AMD に通知しました。AMD の PSIRT(Product Security Incident Response Team)との議論の後、秘匿期限を 2026 年 4 月 14 日に合意しました。
CVE および AMD からの対応
AMD は脆弱性が対象範囲内であることを確認し、以下のリンクの下にアドバイザリーを発行了:https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3034.html。Fabricked は CVE-2025-54510 に付与されました。
引用
論文を引用する場合は、以下の BibTeX エントリをご利用ください:
@inproceedings{schlueter2026fabricked, title={{Fabricked: Misconfiguring Infinity Fabric to Break AMD SEV-SNP}}, author={Benedict Schlüter and Christoph Wech and Shweta Shinde}, booktitle={35th USENIX Security Symposium (USENIX Security 26)}, year={2026}, month = aug, address = {Baltimore, MD}, publisher = {USENIX Association}, }