Intel 在官网上公布了一个 Spectre 漏洞的新变体:Lazy FP 状态还原(Lazy FP state restore),该漏洞被定级为“中等”,攻击者同样可以以推断数据的方式使用户信息泄露。
操作系统一旦在上下文切换时使用了 CPU 的 Lazy FP 功能进行系统状态保存与还原,攻击者便可以利用 CPU 的预测执行功能获取其它进程在寄存器中保存的数据,这与当初 Spectre 的攻击手段如出一辙。
据 Solidot 报道,在漏洞披露前,Lazy FP 存在漏洞的流言就已经在系统开发者社区中传开,并且这被普遍相信是真实的。因此 OpenBSD 在 6 月 5 日已停止使用 Lazy FP 功能,而 DragonFlyBSD 紧接着也在 13 日修复了该漏洞。
巧合的是,在这很久之前的 2016 年 1 月就有 Linux 内核开发者发现了 Lazy FP 有性能问题,因此他当时就在受支持的 CPU 上默认开启了 Eager FP,无意中修复了漏洞。
如果用户使用的 Linux 内核是 4.6-rc1 及其之后的版本,无需采取任何措施,否则建议操作系统使用 Eager FP 取代 Lazy FP,在引导内核参数中加入 eagerfpu=on,手动开启 Eager FP 并重启系统。用户也可以等待上游 backport 补丁,其他操作系统的用户也建议及时进行安全更新。