新型中断注入攻击可绕过 Intel 与 AMD CPU 上的 Spectre v2 防御

新型中断注入攻击可绕过 Intel 与 AMD CPU 上的 Spectre v2 防御

导语:MIT CSAIL 研究人员披露了一种名为 INTERRUPT INJECTION 的新型 Spectre v2 绕过攻击,通过在分支预测器清理与使用之间精准插入硬件中断,可在无权限条件下泄漏任意内核内存。受影响范围涵盖 AMD Zen 1 至 Zen 4 处理器,Linux 内核已通过提交 "x86/bugs: Make Safe-RET robust against interrupt injection" 提供修复,但 AMD 公告未提供 CVE 编号或内核版本信息,管理员需依据提交标题自行核对修复状态。

一种名为 INTERRUPT INJECTION 的新型侧信道攻击技术,能够让一个无权限的 Linux 程序,通过精确计时硬件中断,使其落入处理器清理分支预测器与内核使用预测器之间的窗口,从而在防御机制执行后再次"毒化"预测器。该攻击由 MIT CSAIL 的研究人员 Daniël Trujillo 与 Mengjia Yan 提出。

在一台运行 Linux 6.14 且启用所有默认 Spectre v2 缓解措施的 AMD Zen 2 机器上,其实测利用以每秒 5.47 字节的速率泄漏任意内核内存,准确率达到 91.97%,足以在十次尝试中成功五次定位并读取存储系统密码哈希的 /etc/shadow 文件。该攻击无需任何特权,仅需本地代码执行权限,因此风险主要存在于运行受影响处理器的共享系统之上。

两位研究人员在 2 月 5 日向 AMD 与 Intel 进行了披露。AMD 告知其计划发布一个内核补丁;MIT 表示该补丁随后已经发布,并将通过常规操作系统更新推送给用户。修复已合入 Linux 内核,提交标题为 "x86/bugs: Make Safe-RET robust against interrupt injection",日期为 6 月 2 日,由 Borislav Petkov 编写,并与同样来自 AMD 的工程师 David Kaplan 共同开发。该提交用与研究人员相同的术语描述了这种攻击:在 Safe-RET 执行期间注入中断"可以中和安全返回序列,可能通过推测执行导致数据泄漏"。

AMD 于 8 月 6 日发布公告 AMD-SB-7061,标题为 "Safe RET Interrupt Vulnerability",将 Zen 1 至 Zen 4 处理器列为受影响产品。其摘要指出,在受影响系统上运行代码的攻击者"可以在精确时刻注入中断以干扰 Safe RET",这"可能削弱该防护,并可能导致信息泄漏"。AMD 还补充道,该问题"似乎与 Linux 对 Safe RET 缓解措施的实现有关"。该公告致谢 Trujillo,并指出该行为已在 Zen 1 与 Zen 2 上演示,在 Zen 3 与 Zen 4 上被推测存在但尚未演示。研究论文则报告 AMD 仅在 Zen 2 与 Zen 4 上进行了测试。公告中"受影响产品与缓解措施"一节仅列出处理器型号,未提供补丁引用、内核版本,也未给出 CVE 编号。

原文配图

根据研究人员向 The Hacker News 提供的论文,Intel 认为无需采取缓解措施。AMD 的公告与 MIT 的公告均未指向具体内核提交。在没有 CVE 或具名内核版本的情况下,管理员必须知晓该提交的标题才能检查其机器是否包含修复。内核通过 /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow 报告 SRSO 状态。

这些防御机制的共同思路是清理或隔离分支预测器状态,使攻击者此前的训练无法引导内核分支。Intel 在进入内核时执行此操作,使用 eIBRS,并根据处理器型号辅以分支历史缓冲区清理循环或 BHI_DIS_S 控制;AMD 则在每次内核返回前立即执行,使用 saferet。它们均假设在清理与使用之间不会有恶意代码运行。Trujillo 与 Yan 将这类问题归类为 TONTOU(Neutralization-to-Use 时间窗口),借用了软件领域 TOCTOU 竞态的概念。由于中断几乎可以在任何位置触发,而 Linux 允许任何用户以纳秒级粒度调度中断,这一假设便被打破。如果中断处理能够发生在中和与使用之间,那么中断返回路径便成为 Spectre v2 防御的一部分,即便该缓解措施原本是围绕内核进入或返回而设计。

在 Zen 2 上,这一窗口仅有两指令、六个字节。研究人员通过让兄弟超线程从 L1 与 L2 缓存中驱逐这些字节以减慢其速度,并选择 write 系统调用(使其控制两个寄存器)来提升命中率。中断落入窗口的比例为 5% 到 12%,其中约 2% 时这两个寄存器处于攻击者控制之下。一旦进入,中断处理函数本身就成为训练工具,并借助 Inception(CVE-2023-20569)将返回栈缓冲区填充为攻击者指定的目标。Inception 正是 2023 年 AMD 漏洞,也是 saferet 存在的目的。在测试的四台机器中,其中三台在内核代码中出现了误预测,成功率分别为 Zen 2 上 0.75%、Intel Arrow Lake 上 0.22%、Cascade Lake Refresh 上 0.037%。Zen 4 在该测试中未出现误预测,且 Intel 上未演示端到端泄漏——在 Intel 上攻击者还需要内核中已有可用的泄漏工具。


来源信息

来源:The Hacker News

原文链接:https://thehackernews.com/2026/08/new-interrupt-injection-attack-can.html

作者:info@thehackernews.com (The Hacker News)