新漏洞 BTR:几分钟窃取 root 密码哈希

芯片侧信道攻击又添新变种。阿姆斯特丹自由大学 VUSec 安全团队与意大利圣安娜高等研究院(Scuola Superiore Sant'Anna)的研究者,披露了一种被命名为「分支目标复用」(Branch Target Reuse,BTR)的 Spectre-v2 新变体,能在几分钟内,从一台已打满补丁、默认防护开启的英特尔 Linux 机器上,窃取到 root 密码的哈希值。
BTR 的切入点很巧妙:现代 CPU 在执行「自修改代码」(SMC)之后,能在架构层面恢复代码一致性,却未必会清除过时的「间接分支预测」条目。JIT 引擎(即时编译器)释放一段代码、又在同一地址分配新代码时,CPU 里可能仍留着指向旧代码的预测目标;攻击者只要诱导这个陈旧预测被复用,就能让处理器在推测执行中跳到新代码里的非法偏移处,形成一种「瞬时 use-after-free」原语,进而绕过软件加固、读取本不该访问的数据。
研究团队在 Mozilla Firefox 的 SpiderMonkey 引擎、Oracle 的 GraalVM,以及 Linux 内核的经典 BPF(cBPF)JIT 上做了评估,三者均受影响,但可利用性与泄密速率差异明显。最完整的端到端攻击针对 Linux 内核:研究者用非特权的 cBPF 程序训练分支预测器、释放原程序,再在同一内存放上攻击者构造的新程序,最终定位到正在运行的 su 进程,从它的内存中以每秒 8 字节的速度重建出 root 密码哈希。在英特尔 Raptor Cove 与 Lion Cove 平台上,平均用时分别约 3 分钟和 5 分钟——即便启用了内核的「常量致盲」加固,也能在 5 分钟内得手。
研究者强调,泄露的是哈希而非明文口令,但攻击者可用算力离线破解,成败取决于哈希算法与口令强度。更关键的是结构性问题:「间接分支预测是现代 CPU 的固有机制,BTR 利用的是分支预测器与代码实际状态之间的不同步,」VUSec 表示,「目前没有任何 CPU 有能力让二者保持一致——在厂商补上这一机制之前,你的 CPU 就是脆弱的。」团队称,他们在测试的每一款 CPU 上都复现了该行为,涵盖英特尔、AMD 与 Arm。
在负责任披露之后,修复已经落地。Linux 内核的补丁对应 CVE-2026-64507 与 CVE-2026-64508;GraalVM 通过随机化 JIT 代码缓存位置来阻碍区域复用;Mozilla 考虑过基于 IBPB(间接分支预测屏障)的缓解方案,但目前优先推进的是站点隔离(site isolation)。研究者的建议很直接:及时应用操作系统与固件更新,Linux 用户尽快升级到最新内核。而这距离 MIT CSAIL 披露、可绕过 Spectre-v2 防御并泄露任意内核内存的「中断注入」攻击,还不到两个月——保护 CPU 微架构,仍是一场看不到终点的长跑。
编译自 The Hacker News,原标题:"New Spectre-v2 BTR Attack Leaks Linux Memory Despite Existing Defenses"