6 月份,Google 的 SafeSide 小组在 ARM 处理器的 Armv8-A(Cortex-A)CPU 体系结构中发现了一个名为 Straight-Line Speculation(SLS)的新漏洞(CVE-2020-13844),该漏洞可导致攻击者对ARM架构处理器进行侧信道攻击。彼时,Arm对该漏洞进行了披露,不过并未引起公众太大的关注。
目前,该 SLS漏洞似乎已经变得愈发严重起来。Arm方面正在着手将 GCC 11 开发代码中的缓解措施反向移植到 GCC 10 甚至是 GCC 9。Arm的一位工程师已经发布了一个 SLS补丁程序,该补丁程序将反向移植到 GCC 9,而 GCC 10 的补丁则预计将在 GCC 10.2 发布后出现。
Arm 于本月初将其最初的 SLS 缓解措施合并到了 GCC Git 中,涵盖RET 和 BR 指令。用户现下可通过编译器在易受攻击的指令周围插入speculation barrier(SB)指令来缓解 SLS。不过Arm方面表示,其不建议默认情况下启用这些基于编译器的缓解措施,理由是过度使用 SB 指令会对性能造成影响。
可以通过-mharden-sls=来启用 GCC 的 Arm SLS 缓解。其中值为“all”时,可缓解所有易受攻击的指令,为“retbr”时则仅在 RET 和 BR 指令上插入speculation barrier,而“blr”只用于缓解 BLR usage。当前,此 Arm SLS 缓解措施尚不支持 per-function basis 缓解。