写点什么

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

  • 2018-06-25
  • 本文字数:926 字

    阅读完需:约 3 分钟

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

感谢冬雨对本文的审校。

2018-06-25 02:372247

评论

发布
暂无评论
发现更多内容

gRPC学习之五:gRPC-Gateway实战

Java 程序员 后端

JAVA 雪花算法 唯一ID生成工具类

Java 程序员 后端

Flink的sink实战之一:初探

Java 程序员 后端

GitHub 上 1

Java 程序员 后端

Gitlab Runner的分布式缓存实战

Java 程序员 后端

Go实战(三)-数组array、切片slice语法详解

Java 程序员 后端

JAVA 线上故障排查完整套路

Java 程序员 后端

JAVA 语法 - 关键字 - volatile

Java 程序员 后端

Hadoop之MapReduce04【客户端源码分析】

Java 程序员 后端

HttpClient的两种重试机制

Java 程序员 后端

Java 多线程 —— 生产者消费者问题

Java 程序员 后端

Java 生态圈中的嵌入式数据库,哪家强?

Java 程序员 后端

IT人不仅要提升挣钱能力,更要拓展挣钱途径

Java 程序员 后端

Java 线程池原理分析

Java 程序员 后端

Flutter中的widget

Java 程序员 后端

HttpClient工具类

Java 程序员 后端

模块三作业:外包学生管理系统架构文档

dean

架构实战营

jackson学习之二:jackson-core

Java 程序员 后端

Jaeger的客户端采样配置(Java版)

Java 程序员 后端

JAVA 微信小程序 解密 用户信息encryptedData

Java 程序员 后端

Flink数据源拆解分析(WikipediaEditsSource)

Java 程序员 后端

HarmonyOS(鸿蒙)——全面入门

Java 程序员 后端

IBM大面积辞退40岁+的员工,如何避免可怕的中年危机?

Java 程序员 后端

Java 结合实例学会使用 静态代理、JDK动态代理、CGLIB动态代理

Java 程序员 后端

Java 小记 — RabbitMQ 的实践与思考

Java 程序员 后端

Flink on Yarn三部曲之三:提交Flink任务

Java 程序员 后端

Git Flow 的正确使用姿势

Java 程序员 后端

GitHub上标星75k+超牛的《Java面试突击版》,分享PDF离线版

Java 程序员 后端

Android开发:往项目工程里面新引入工具包的步骤

三掌柜

11月日更

intellij idea2019打开项目启动总闪退

Java 程序员 后端

Java 移除List中的元素,这玩意讲究!

Java 程序员 后端

Lazy FP状态还原漏洞公布,大多数Intel的酷睿CPU受其影响_Linux_Sergio De Simone_InfoQ精选文章