目录
一、概述
在部分基于Arm架构的CPU中发现了一个潜在安全问题,称为Spectre-BSE(Branch Status Eviction,分支状态驱逐漏洞)。该漏洞可能使攻击者能够绕过现有保护措施,以较弱的形式控制受害者的分支历史记录。
Arm公司认为实际利用风险极低,因为攻击者需要首先找到可利用的泄露指令片段,控制相关寄存器,并且在初始化和利用阶段之间保持被操控的分支预测器状态不变。
二、CVE详情
该问题被分配了编号CVE-2024-10929。
三、受影响产品
Cortex-A72(仅限r1p0之前的版本)
Cortex-A73
Cortex-A75
注:由于微架构条件限制了可利用性,Cortex-A72 r1p0及后续版本不受Spectre-BSE影响。
四、建议措施
Arm建议合作伙伴评估各自的实现方案以决定是否需要采取行动。
如需防护此问题,可采取以下缓解措施:
对于Cortex-A72(r1p0之前的版本):在最高实现的异常级别禁用并重新启用MMU
对于Cortex-A73和Cortex-A75:可使用BPIALL指令使分支预测器中所有条目失效
由于这些缓解措施仅适用于高异常级别,配备兼容固件(如Trusted Firmware-A)的设备可通过调用SMCCC_ARCHITECTURE_WORKAROUND_1或SMCCC_ARCHITECTURE_WORKAROUND_3来实现防护。
Linux内核已针对Cortex-A73和Cortex-A75核心实现了针对Spectre-BHB的防护措施,因此运行在Trusted-Firmware-A和Linux上的系统已具备对此问题的防护能力。
Arm已向Linux内核提交补丁,将为r1p0之前的Cortex-A72提供防护。Arm认为实际利用风险极低,因此默认关闭该缓解措施,但可在内核中启用。详情参见此处补丁。
arm64: proton-pack: Add Spectre-BSE mitigation for Cortex-A7{2,3,5}
其他操作系统、固件和虚拟机管理程序应考虑是否针对Spectre-BSE更多地采用这些解决方案。
五、致谢
Arm感谢意大利比萨圣安娜高等学校实时系统实验室(ReTiS)的ZHU Yuhui和Alessandro Biondi分享他们的研究成果。
六、版本历史
版本 | 日期 | 描述 |
---|---|---|
1-0 | 2025年1月22日 | 初始发布 |
1-1 | 2025年3月14日 | 重新发布为110360 |