阿姆斯特丹自由大学(Vrije Universiteit Amsterdam)的漏洞安全实验室VUSec本周发布一篇研究报告,指出在2018年曝光的CPU推测执行漏洞Spectre并没有修补完全,使得该实验室依然可通过其它渠道开采其中的CVE-2017-5715漏洞,进而推测核心内存中的机密信息。
推测执行(Speculative Execution)为一用来提升CPU性能的设计,可提前执行可能需要的指令,相关指令若涉及机密资料,并把资料带入缓存,黑客即可开采该程序,读取存放在内存中的机密信息,又称为旁路攻击。Spectre由3个变种漏洞组成,分别是CVE-2017-5753、CVE-2017-5754,以及VUSec这次的发现有关的CVE-2017-5715。
CVE-2017-5715属于分支目标注入漏洞(Branch Target Injection,BTI),又被称为Spectre v2,也被视为最危险的Spectre变种,它允许一名无特权的黑客传送任何分支目标到间接的分支预测器,促使核心推测性地跳至注入目标的程序代码区域并执行程序。
硬件及软件企业提出了各种缓解措施来修补BTI,主要是让预测器可关注权限等级,然而,VUSec却发现了可用来开采Spectre v2的新途径──分支历史注入(Branch History Injection,BHI)。
VUSec团队说明,硬件的缓解措施的确可避免无特权黑客于核心注入预测器条目,然而,由于预测器依赖全局历史来选择目标条目以推测执行,若黑客得以自用户空间毒害全局历史,就能迫使核心因误判形势而外泄资料。
此外,VUSec认为英特尔及Arm修补BTI漏洞时,已经达到它们原先想要的目的,企业没想到的是相关的攻击表面比它们原先估计的还要广泛,且BHI基本上是BTI漏洞的延伸,只要是当初被这个BTI漏洞影响的产品,就会受到新漏洞的波及。
英特尔把VUSec所发现的漏洞拆分为CVE-2022-0001及CVE-2022-0002,而Arm对此仅提供一个漏洞编号CVE- 2022-23960,双方皆已发布安全建议。