VUSec和IBM Research Europe今天宣布,投机性竞争条件(SRC)是一种新的漏洞类别,使用条件分支的线程同步原语可以使用Spectre-V1攻击在投机性路径上以微体系结构绕过。研究人员将CVE-2024-2193命名为Ghost Race,据说会影响所有主要的CPU供应商。
Ghost Race/推测性Race条件与线程同步基元(如互斥体)有关,在带有Spectre变体的条件分支的上下文中,一次攻击可能导致目标文件中的信息泄漏。
在有关的主要要点中Ghost Race页面由VUSec提供:
我们的分析表明,Linux内核中所有其他常见的写入端同步原语最终都是通过条件分支实现的,因此容易受到推测的竞争条件的影响。
..。
硬件:我们已确认所有主要硬件供应商都受到SRC的影响,因为无论特定的比较与交换指令实现如何,后面的条件分支都会受到分支(未命中)预测的影响。换句话说,所有受Spectre-v1影响的微体系结构也都受到SRC的影响。软件:任何依赖条件分支来确定是否进入关键区域的目标都容易受到SRC的攻击。关键区域是一个远远超出Linux的常见设计模式。
总之,通过条件分支实现同步原语而在该路径上没有任何串行化指令并且运行在允许推测性地执行条件分支的任何微体系结构(例如,x86、ARM、RISC-V等)上的任何软件,例如操作系统、管理程序等,都容易受到SRC的攻击。与其他推测性执行攻击一样,这允许从目标软件泄露数据。
..。
为了应对新的攻击面,我们还提出了一种通用的SRC缓解,以序列化Linux上所有受影响的同步原语(即,在图1中的lock cmpxchq之后添加一条lfigure指令)。我们的缓解只需要最小的内核更改(即2LoC),并且在LMBch上仅产生5%的≈地理性能开销。
出于性能方面的考虑,Linux内核开发人员不打算实现研究人员提出的同步原语的序列化。同样,AMD的安全公告关于投机性竞赛条件注意到,AMD建议只遵循之前发布的关于Spectre缓解的指导。
We'll see if anything changes but as of now both the hardware vendors and the upstream Linux kernel developers don't feel it's necessary taking any new steps around GhostRace / Speculative Race Conditions.