QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:371792

评论

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

ARouter源码详解,androidjni开发流程

android 程序员 移动开发

BindService的生命周期分析【我读源码你不读,我吃螃蟹你吃土(1)

android 程序员 移动开发

cmake使用教程(一)-起步,移动应用开发就业

android 程序员 移动开发

王者荣耀商城异地多活架构设计

缘分呐

架构设计

BottomSheetDialog 使用详解,设置圆角、固定高度,移动开发工程师

android 程序员 移动开发

Dagger2入门系列一:基础使用,从基础到源码统统帮你搞定

android 程序员 移动开发

测试用例又双叒叕失败了,NLP帮你来分析

华为云开发者联盟

软件 测试 nlp 测试用例

ASM插桩--多线程运行监测,2021Android大厂面试经验分享

android 程序员 移动开发

BATJ面霸:程序员可是要改变世界呀!阿里巴巴3面,移动客户端开发岗面试题

android 程序员 移动开发

cmake使用教程(三)-安装(1),kotlin入门项目

android 程序员 移动开发

Python爬虫私活,代码公开!采集了20000+漫展历史数据,一言不合就开源

梦想橡皮擦

11月日更

Context都没弄明白,还怎么做Android开发?,靠着这份面试题跟答案

android 程序员 移动开发

Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料

android 程序员 移动开发

SAP云平台运行环境Cloud Foundry和Neo的区别

汪子熙

云平台 SAP 11月日更

cmake使用教程(九)-关于安卓的交叉编译,腾讯&字节&爱奇艺&网易&华为实习面试汇总

android 程序员 移动开发

Coroutine 基本原理,吃透这份阿里P8纯手打Android面经

android 程序员 移动开发

CountDownLatch 源码分析示例,《Android面试题及解析》分享给大家

android 程序员 移动开发

Android:这是一份全面&详细的-热修复-学习指南,含泪狂刷Android基础面试118题

android 程序员 移动开发

CAS机制详解,android开发基础知识点

android 程序员 移动开发

ARouter系列2:源码分析,移动端跨平台开发

android 程序员 移动开发

BAT常见Android面试20题详解,小白看完都会了

android 程序员 移动开发

Canvas加动画,实现火柴人跳绳效果,2021Android开发面试解答

android 程序员 移动开发

Code Review&编程习惯,安卓工程师面试题

android 程序员 移动开发

DialogFragment探索与实现(1),2021年是做安卓开发人员的绝佳时机

android 程序员 移动开发

kubernetes系列随笔02:docker技术原理

Geek_cd6rkj

Docker Kubernetes 容器

AOP与OOP有什么区别,谈谈AOP的原理是什么,腾讯T2大牛亲自讲解

android 程序员 移动开发

BATJ面霸:程序员可是要改变世界呀!阿里巴巴3面(1),flutter下载文件

android 程序员 移动开发

BindService的生命周期分析【我读源码你不读,我吃螃蟹你吃土

android 程序员 移动开发

云小课|大数据时代的隐私利器-GaussDB(DWS)数据脱敏

华为云开发者联盟

EI智能体 DWS数据脱敏 数据仓库服务GaussDB(DWS)

cmake使用教程(三)-安装,程序员去大公司面试

android 程序员 移动开发

Code Review&编程习惯(1),安卓网络通信开发

android 程序员 移动开发

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