Lazy FP状态还原漏洞公布,大多数Intel的酷睿CPU受其影响

Intel公布了一个新的漏洞,该漏洞影响了大部分酷睿处理器,使其成为类似于Spectre和Meltdown的旁路攻击的目标。该漏洞被称为Lazy FP状态还原(CVE-2018-3665),允许进程推断出属于其他进程的FPU/MMX/SSE/AVX寄存器的内容。

x86处理器的功能使得新的漏洞成为可能,它允许在上下文切换时懒惰地切换FPU。实际上,由于FPU寄存器数量通常要多得多,FPU状态的快速保存和还原相对来说较为昂贵,所以操作系统可以选择使用Lazy FP状态还原。这意味着FPU状态的实际保存和还原会延迟到指令想要访问它时才做。这是有意义的,因为并不是所有的程序都使用FPU,但是它使得攻击者可以通过使用该寄存器作为内存地址的一部分来访问不允许它们访问的FPU寄存器,这样CPU推断性地访问到了它。稍后,CPU将检测并修复该错误,但这种推测性执行的痕迹仍然留在缓存中,使其可供攻击者使用。

据发现此漏洞的安全研究人员Colin Percival表示,与之相关的主要风险在于AES加密密钥通常存储在FPU的SSE寄存器中。尽管Percival只花了五个小时来编写漏洞利用代码,他表示,远程利用漏洞要比Meltdown困难得多:

你需要能够在与目标进程相同的CPU上执行代码,以此方式窃取加密密钥。 你还需要在CPU管道完成之前按一定的顺序执行特定操作,因此执行的窗口很窄。

这个新的漏洞类似于Meltdown(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5754),因为它允许从用户空间程序中读取受保护的内存内容,但它仅限于跨进程边界的某些寄存器内容。

从好的方面来看,这个漏洞可以在操作系统级别修复,而不需要像Spectre和Meltdown那样使用微码更新。实际上,只有运行特定处理器和操作系统组合的系统才会受到影响。特别是,早期的Linux版本(4.9版本以前),FreeBSD和一些虚拟机管理程序在Intel酷睿 CPU上运行会受到影响。微软表示,所有Windows版本都使用Lazy PF状态还原,并且无法禁用。此外,目前没有缓解措施或解决方法。

虽然目前还不太清楚非Intel处理器有没有这个漏洞,但AMD对SecurityWeek称他们的产品不受此影响

InfoQ会在有新信息时更新这篇文章。

查看英文原文: Lazy FP State Restore Vulnerability Affects Most Intel Core CPUs

感谢冬雨对本文的审校。

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/06/lazy-state-restore-vulnerability

扫码关注云+社区

领取腾讯云代金券