该团队在 Arxiv.org 上揭橥的一篇论文中提到,这种攻击利用了瞬态实行中的一个毛病,“使得通过定时剖析从用户内存空间中提取秘密数据成为可能”,瞬态实行中 EFLAGS 寄存器的变革会影响条件码跳转 (JCC) 指令的时序。
IT之家注:这里提到的 FLAGS 寄存器一样平常被称为“包含 x86 CPU 当前状态的状态寄存器”,而 JCC 是基于 EFLAGS 寄存器内容的“许可条件分支的 CPU 指令”。
大略来说,要想利用这个漏洞实现攻击,首先该当通过 EFLAGS 寄存器触发(包含秘密数据)编码的瞬态实行,然后丈量 JCC 指令的实行韶光来获取该编码数据的内容。

▲ 攻击概述 图源:arxiv.org
上述研究职员已经在多种芯片上测试了这个漏洞,创造它在 i7-6700 和 i7-7700 上“100% 成功”,在 i9-10980XE 上“部分成功”(测试平台基于 Ubuntu 22.04 jammy,Linux 内核版本 515.0)。
▲ 用于计时瞬态实行攻击的伪代码 (arxiv.org)
研究职员创造,为了在新芯片上得到更高的同等性,攻击须要运行数千次。不过他们目前还不清楚是什么缘故原由导致了这个 Bug。
“在我们的实验中,我们创造 EFLAGS 寄存器对 Jcc 指令实行韶光的影响并不像缓存状态那样持久,”研究职员提到,“在瞬态实行后的大约 6-9 个周期内,Jcc 实行韶光将不会构建边信道。根据履历,攻击须要重复数千次才能得到更高的准确性。”