AMD 警告:全新“瞬态调度器攻击”波及广泛 CPU
AMD 正在警告一系列影响广泛芯片组的新漏洞,这些问题可能被利用来窃取敏感信息。
这类漏洞统称为瞬态调度器攻击(Transient Scheduler Attacks,简称 TSA),其本质是一种利用 CPU 特定微架构条件下指令执行时间差异而实现的信息侧信道攻击。
AMD 在安全通告中表示:“在某些情况下,攻击者可能能够利用这些时间信息推断出来自其他上下文的数据,从而导致信息泄露。”
这些问题由微软和苏黎世联邦理工大学(ETH Zurich)的研究人员发现,研究着重测试现代 CPU 在面对 Meltdown 和 Foreshadow 等“推测执行”攻击时的表现,特别是在虚拟机、内核、用户进程等安全隔离领域的脆弱性。
在 2024 年 6 月负责任披露后,漏洞获得了如下 CVE 编号:
CVE-2024-36350(CVSS 评分:5.6)
某些 AMD 处理器存在瞬态执行漏洞,可能允许攻击者推测前一次存储操作中的数据,从而造成特权信息泄露。CVE-2024-36357(CVSS 评分:5.6)
攻击者可借助 L1D 缓存中的数据推测敏感信息,可能跨越权限边界。CVE-2024-36348(CVSS 评分:3.8)
即使启用了 UMIP(用户模式指令防护),攻击者仍可通过推测执行方式访问控制寄存器,导致信息泄漏。CVE-2024-36349(CVSS 评分:3.8)
即便系统禁止读取 TSC_AUX 寄存器,攻击者仍可能通过推测方式访问其值,造成泄漏。
TSA:AMD 称之为“新型推测性侧信道攻击”
为应对 TSA,AMD 已为受影响的处理器发布微代码更新。涉及的产品线极广,包括但不限于以下系列:
服务器端处理器:
第三代 AMD EPYC
第四代 AMD EPYC
AMD Instinct MI300A
EPYC Embedded 系列(7003、8004、9004、97X4)
桌面处理器:
Ryzen 5000/7000/8000 系列
Ryzen Threadripper PRO 7000 WX 系列
移动和集成显卡版本:
Ryzen 6000/7035/7040/8040 系列(含 Radeon Graphics)
Ryzen Embedded 5000/7000/V3000 系列
“错误完成”机制带来的风险
AMD 指出,TSA 的核心在于所谓的 “false completion(错误完成)”:
当 CPU 预测某次内存读取会快速完成时,依赖该读取的后续操作可能会被提前调度执行。但如果该读取实际上未完成,早期使用的数据就是“无效数据”。
后续流程中虽然读取会被重新执行,依赖操作也会用有效数据重试,但在 错误完成未被检测期间,无效数据可能影响其他指令的执行时间——这就为攻击者提供了“侧信道信号”。
不同于像“预测性存储转发”这种推测行为,错误完成并不会导致整个流水线被刷新。虽然这些无效数据不会更新缓存或 TLB 状态,但仍可能通过执行延迟间接泄露信息。
TSA 的两种变体:TSA-L1 与 TSA-SQ
AMD 指出 TSA 攻击有两种具体变体:
TSA-L1:源于 L1 数据缓存中使用微标签(microtags)查找数据的错误方式。
TSA-SQ:由加载指令错误地从尚未准备好的 Store Queue(存储队列)中提取数据而触发。
在两种情况下,攻击者均可从 L1 缓存或旧指令中的存储数据中推测敏感信息,即使这些操作发生于不同的权限上下文。
在最坏情况下,攻击可能导致以下严重后果:
内核向用户空间的数据泄漏
虚拟机管理程序(hypervisor)泄露信息至客户虚拟机
用户应用间数据窃取
攻击门槛较高,暂无网站利用风险
AMD 表示,成功实施 TSA 攻击的前提条件较为苛刻:
攻击者必须能够获得目标机器的本地代码执行权限;
攻击方和受害者需存在某种通信路径,如应用与操作系统间的交互;
攻击通常需重复调用受害程序以人为制造“错误完成”状态。
因此,TSA 攻击无法通过恶意网站远程触发,目前威胁面仍相对有限。
总结
TSA 表明推测执行攻击仍在演进,虽然短期内风险可控,但 AMD 所覆盖的处理器范围极广。企业和用户应关注相关微代码补丁更新,特别是涉及高敏感数据的场景,如虚拟化环境、数据中心、云平台等。