Fabricked:误配置Infinity Fabric以攻破AMD SEV-SNP
摘要
一种新型软件攻击通过误配置Infinity Fabric来破坏AMD SEV-SNP的安全保证,使恶意虚拟机监视器能够对机密虚拟机进行任意读写访问。
暂无内容
查看缓存全文
缓存时间: 2026/05/18 00:51
# Fabricked
来源:https://xca-attacks.github.io/fabricked/
本页内容
- 摘要 (https://xca-attacks.github.io/fabricked/#summary)
- 什么是 AMD SEV-SNP? (https://xca-attacks.github.io/fabricked/#what-is-amd-sev-snp)
- 什么是 Infinity Fabric? (https://xca-attacks.github.io/fabricked/#what-is-the-infinity-fabric)
- Fabricked 概述 (https://xca-attacks.github.io/fabricked/#fabricked-overview)
- 哪里出了问题? (https://xca-attacks.github.io/fabricked/#what-went-wrong)
- 攻击复杂度 (https://xca-attacks.github.io/fabricked/#attack-complexity)
- 受影响硬件 (https://xca-attacks.github.io/fabricked/#affected-hardware)
- 常见问题 (https://xca-attacks.github.io/fabricked/#faq)
- 作者 (https://xca-attacks.github.io/fabricked/#authors)
- 负责任披露 (https://xca-attacks.github.io/fabricked/#responsible-disclosure)
- CVE 与 AMD 回应 (https://xca-attacks.github.io/fabricked/#cve--amd-response)
- 引用 (https://xca-attacks.github.io/fabricked/#citation)
误配置 Infinity Fabric 以攻破 AMD SEV-SNP(USENIX Security 2026 (https://www.usenix.org/conference/usenixsecurity26))
## 摘要
机密计算允许云租户将敏感计算和数据卸载到远程资源,而无需信任云服务提供商。基于硬件的可信执行环境(如 AMD SEV-SNP)通过创建机密虚拟机 (CVM) 来实现这一点。通过 Fabricked,我们提出了一种新颖的基于软件的攻击,该攻击操纵内存路由以破坏 AMD SEV-SNP。通过重定向内存事务,恶意虚拟机监控器能够欺骗安全协处理器 (PSP),使其错误地初始化 SEV-SNP。这使得攻击者能够对 CVM 地址空间执行任意读写访问,从而破坏 SEV-SNP 的核心安全保证。
### 什么是 AMD SEV-SNP?
标准云环境会将正在使用的租户计算和数据暴露给可能不可信的云服务提供商。机密计算通过使用机密虚拟机 (CVM) 解决此问题:这是一种硬件屏蔽的环境,可隔离活动工作负载并保证对主机完全的数据隐私。安全加密虚拟化-安全嵌套分页 (SEV-SNP) 是一种 AMD 硬件扩展,可在 AMD 服务器 CPU 上启用 CVM。
### 什么是 Infinity Fabric?
现代 AMD 片上系统 (SoC) 采用基于小芯片的架构。其核心思想是将各个 CPU 模块制造在独立的裸片上,并通过高速互连将它们连接起来。虽然这种设计显著提高了制造良率,但也引入了组件间通信的复杂性。AMD 通过 Infinity Fabric 解决此问题,该架构负责 CPU 核心、内存控制器和外围设备之间的连贯数据传输、内存路由和地址映射。由于平台配置因不同系统和启动序列而异,Infinity Fabric 必须在每次 CPU 启动序列期间进行动态配置。AMD 将此配置过程的某些部分委托给主板固件,也称为 BIOS 或 UEFI。
Infinity Fabric 高层概览Infinity Fabric 高层概览
**图 1:**_Infinity Fabric 的示意概览。_
### Fabricked 概述
在机密计算威胁模型中,UEFI 是不可信的,由云服务提供商控制。在 Fabricked 中,我们首先发现不可信的 UEFI 负责锁定 Infinity Fabric 配置的某些部分。作为攻击者,我们会修改 UEFI 以跳过这些 API 调用。这使得即使在机器上激活 SEV-SNP 后,Infinity Fabric 仍然可由攻击者配置。
因此,攻击者(即恶意虚拟机监控器)可以修改 Infinity Fabric 以重新路由 DRAM 内存事务。由于 Infinity Fabric 不仅连接 CPU 核心,还将安全协处理器 (PSP) 连接到 DRAM,因此我们可以操纵 PSP 对 DRAM 的读写操作。我们利用这种攻击者能力来破坏 SEV-SNP 的初始化。具体来说,我们发现 SEV-SNP 初始化期间,PSP 会建立一个关键数据结构 RMP,用于对 CVM 内存强制执行内存访问控制规则。在此设置过程中,PSP 必须对 DRAM 执行内存写入。通过在 PSP 写入之前错误配置 Infinity Fabric,我们能够丢弃这些写入操作。这会导致 RMP 未初始化,即保持完全不变,保留由恶意虚拟机监控器设置的不安全默认条目。换句话说,通过使用 Fabricked,攻击者绕过了 SEV-SNP 初始化的部分环节,同时欺骗系统使其认为初始化已成功。随后,当受害者在平台上启动 CVM 时,由于 RMP 的强制执行实际上已失效,虚拟机监控器可以访问这些 CVM 的内存。
Fabricked 攻击高层概览Fabricked 攻击高层概览
**图 2:**_Fabricked 攻击的高层概览:在 SNP_INIT 期间,攻击者恶意地将安全协处理器的写入操作错误路由到 DRAM。这导致 RMP 包含不安全的默认条目。_
### 哪里出了问题?
Fabricked 之所以可能,是由于两个关键缺陷。首先,虚拟机监控器可以恶意破坏某些 Infinity Fabric 路由规则。其次,当安全协处理器随后发出内存请求时,被破坏的路由规则会优先于正确的规则——静默地将本应用于初始化 RMP 的写入操作错误导向。
### 攻击复杂度
Fabricked 是一种完全确定性的纯软件利用方式,成功概率为 100%。它不依赖于在受害者 CVM 内部运行的任何代码,也无需对硬件的物理访问。
## 受影响硬件
我们在运行 SEV-SNP 的 AMD Zen 5 EPYC 处理器上确认了该漏洞。然而,AMD 公告中还列出了针对 Zen 3 和 Zen 4 处理器的固件更新。我们注意到这些系统的补丁说明也列出了 CVE-2025-54510 的缓解措施。因此,我们认为 Fabricked 影响 Zen 3、Zen 4 和 Zen 5。
## 常见问题
问:此攻击是否会对 SEV-SNP 以外的领域产生影响?
- Fabricked 错误地路由了 AMD 片上安全协处理器 (PSP) 的内存访问。我们尚未研究该漏洞对 SEV-SNP 以外的影响。
问:Fabricked 是否会影响我在云中的非机密虚拟机?
- 不会。Fabricked 假设恶意虚拟机监控器和 UEFI 会重新配置 Infinity Fabric。在非机密虚拟机的威胁模型中,虚拟机监控器和 UEFI 被视为可信的。
问:攻击需要哪些条件?
- 攻击者需要拥有 UEFI 和 Hypervisor 权限才能成功实施 Fabricked 攻击。
问:攻击场景是否现实?
- 我们在 AMD 为 SEV-SNP 定义的威胁模型下操作。AMD 明确不信任 UEFI,因此攻击者可以修改 UEFI。此外,由于机密计算旨在保护云提供商中的敏感数据,可以假设云提供商拥有自定义的 UEFI 实现。
问:为什么叫 Fabricked?
- 我们的攻击错误配置 Infinity Fabric 以“砖化”(brick)SEV-SNP。因此,我们将该攻击称为 Fabricked。
问:AMD 的回应是什么?
- AMD 承认了该攻击并发布了修复程序。您可以在其公告页面上找到更多信息:https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3034.html。
问:这对 Arm CCA 或 Intel TDX 有影响吗?
- 目前的攻击对 Intel TDX 或 Arm CCA 无效。然而,我们注意到在 Intel 系统内部也发现了一个类似的漏洞:INTEL-SA-00960 (https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/advisory-guidance/trusted-execution-configuration-register-access.html)。
问:此攻击是否适用于其他版本的 SEV(例如 SEV-ES)?
- 不适用。AMD SEV 和 SEV-ES 不保证任何客户机完整性,因此被广泛认为在设计上是不安全的。因此,我们未针对 SEV 和 SEV-ES 评估我们的攻击。
问:我可以使用 Fabricked 徽标吗?
- 当然,该徽标可自由使用。
问:为什么 Fabricked 是 XCA 攻击类的一个实例?
- Fabricked 错误配置互连以破坏机密计算的安全保证,因此属于 XCA 攻击。
问:Fabricked 与 BreakFAST 有何不同?
- Fabricked 与 BreakFAST (https://xca-attacks.github.io/breakfast/) 的不同之处在于它重新配置了 Infinity Fabric 中的哪个组件以及重新配置的结果是什么。Fabricked 针对的是 IOMS,而 BreakFAST 针对的是 I/O 交叉开关。在 Fabricked 中,我们丢弃了本应到达 DRAM 的 PSP 写入,而 BreakFAST 则将 PSP 的读写操作重定向到控制 Fabric。因此,BreakFAST 允许攻击者控制控制 Fabric 的部分内容,而 Fabricked 则禁用了 SEV-SNP 的完整性保护。
- Chris Wech (https://chriswe.ch/)
- Benedict Schlüter (https://benschlueter.com/)
- Shweta Shinde (https://shwetashinde.com/)
## 负责任披露
我们于 2025 年 8 月 3 日将漏洞告知 AMD。在与 AMD PSIRT 讨论后,我们约定了一个 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},
}
``
相似文章
AMD不愿修复的远程代码执行漏洞
一名研究人员发现AMD的AutoUpdate软件存在远程代码执行漏洞,原因在于不安全的HTTP下载链接和缺乏证书验证。AMD最初以超出范围为由不予理会,但在公众关注后同意发布CVE并修复。
执行代码的配置文件:供应链安全盲点
IDE、AI编码智能体和包管理器的配置文件可以自动执行代码,从而形成供应链安全盲点。本文详细介绍了利用此类配置文件释放恶意软件的Miasma蠕虫攻击,并提供了注入向量的示例。
CopyFail: 从Pod到主机
Copy Fail 是一种新的 Linux 本地提权漏洞,它利用内核内存损坏缺陷重写页缓存,从而实现跨容器攻击和容器逃逸。
objdump -g 中的任意代码执行
objdump -g 中存在一个安全漏洞,由于 FR30 重定位处理程序缺少边界检查,通过精心构造的 FR30 目标文件可实现任意代码执行,单个漏洞利用即可绕过 ASLR 及其他缓解措施。
AMD拒绝向研究人员支付1万美元漏洞赏金
AMD拒绝了研究员Paul LaRosa提出的1万美元漏洞赏金,此前他发现了AMD Windows自动更新程序中的一个关键HTTP漏洞,可导致中间人攻击;该公司花了124天修复该问题,且仍使用弱CRC32校验和。