首个针对JIT的Spectre v2攻击BTR曝光

荷兰与意大利研究团队曝光首个针对JIT的Spectre v2攻击BTR。该漏洞利用过时分支目标实现投机执行,可泄露Linux内核密码哈希,泄漏速率约5.7KB/秒,已获两个CVE编号。

微架构漏洞 Spectre 的变种再次出现,这次其攻击目标直指即时编译器(JIT)。JIT 引擎广泛存在于浏览器、运行时环境及操作系统内核中,负责将代码动态编译为机器指令。该漏洞利用 CPU 的推测执行机制——即在正式执行前预先运行代码以提升性能——从而开启侧通道攻击的大门。

Intel芯片泄漏率约5.7KB每秒

自 Spectre 首次披露以来,芯片制造商与操作系统开发者一直在持续修复相关漏洞。研究人员随后发现了包括 2025 年出现的 VMScape 在内的数十种变体,这些大多属于所谓的“Spectre v2”攻击范畴,旨在利用间接分支预测器。攻击者通过训练分支预测器,使其推测性地跳转到选定地址,进而泄露微架构状态数据。

BTR:首个针对 JIT 的实际 Spectre v2 攻击

来自荷兰自由大学(Vrije Universiteit)和意大利圣安娜高等研究学院(Scuola Superiore Sant'Anna)的研究团队发现了一种名为“分支目标重用”(Branch Target Reuse, BTR)的新型攻击形式。研究者将其描述为第一个实际针对即时编译器(JIT)的 Spectre v2 攻击。

该攻击分为内部和外部两种模式:内部攻击局限于受害者的分支结构,而外部攻击则依赖于对不同分支目标的猜测。研究团队成员 Sander Wiebing、Yuhui Zhu、Alessandro Biondi 和 Cristiano Giuffrida 指出,这种新型幽灵漏洞可从 Linux cBPF、Oracle GraalVM 以及 Mozilla SpiderMonkey 等 JIT 引擎留下的代码中衍生出来。

论文作者解释了攻击背后的关键洞察:“虽然现代 CPU 在自我修改代码后能够恢复架构代码的一致性,但它们并不一定会清除过时的间接分支预测条目(即分支目标)。在 JIT 引擎中,这些过时的目标可能会覆盖原始代码,并在代码缓存被重新填充时被重复使用,从而产生一个投机性执行的‘免费’原始代码片段。”

这一机制使得攻击者能够以规避某些软件防御措施(如 FineIBT)的方式控制投机性控制流。

概念验证与影响评估

研究人员展示了两个基于 Intel 平台的 Linux 内核概念验证漏洞。即便在启用 cBPF 提供的恒定绑定防御的情况下,攻击者仍能揭示根密码哈希。

数据显示,在 Intel Raptor Cove 芯片上,信息泄漏速率约为 5.7 KB/秒;而在 Lion Cove 芯片上,泄漏速率约为 5.4 KB/秒。尽管速度较慢,但这足以让无特权用户从易受攻击的系统中获取敏感密码信息。

在研究人员披露发现后,Linux 内核开发人员和 Oracle 已采取缓解措施。该漏洞分配了两个 CVE 编号:CVE-2026-64507 和 CVE-2026-64508。据报道,Mozilla 选择优先推进网站隔离工作,而非直接解决此特定问题。虽然像 IBPB 这样的强力缓解措施有效,但会增加系统复杂性并阻碍性能表现。

关于“分支目标重用”的研究论文已被接受,将在 2026 年 ACM 计算机和通信安全会议(CCS)上发表。该会议定于 11 月 15 日至 19 日在荷兰海牙举行。

评论 0

0/500

评论需审核后展示,请文明发言

💬
还没有评论,来说两句

相关阅读