开发者误读芯片厂商调试文档,导致主要操作系统均出现新内核漏洞

美国计算机安全应急响应中心(以下简称“CERT”)日前发布公告称,Windows、macOS、Red Hat、Ubuntu、SUSE Linux、FreeBSD、VMware 和 Xen 等系统都可能受到一个重大安全漏洞( CVE-2018-8897)的影响,这个漏洞是由于操作系统开发者曲解了英特尔和AMD两大芯片厂商的调试文档所致。

不过,这个漏洞的利用需要一定的条件,攻击者需要使用已经感染带有恶意软件的计算机,或者必须使用已经登录的帐户才能运行利用此漏洞的恶意代码。如果顺利入侵,攻击者可以将其代码的访问权限提升到内核级别,然后使用此访问权限执行其他操作。通俗来说,攻击者可以利用操作系统的 API 获取敏感内存信息,或控制低级操作系统功能。

根据 CERT/CC 的报告,这个漏洞出现的详细原因如下:

这个漏洞主要与操作系统供应商为 Intel x86-64 体系结构部署的硬件调试机制有关,核心原因是 MOV SS 和 POP SS 指令。该指令从正在运行的程序堆栈中获取一个用于选择堆栈段的值,并将这个值存入 CPU 的堆栈选择器与寄存器。这与很多现代操作系统所忽视的内存分割有关。POP SS 指令由 CPU 专门处理,以确保在执行中断时,堆栈不会陷入不一致的状态。

应用程序可以通过 POP SS 为堆栈选择器所在的内存位置设置调试断点。也就是说,当应用程序使用 POP SS 时,如果处理器触及 RAM 的特定部分以获取堆栈选择器,将会生成特殊的异常问题。如果紧接在 POP SS 指令之后的指令是 INT 指令,就能利用这种异常情况来触发中断。这些软件触发的中断有时被用户程序用于激活内核,因此它可以执行打开文件等运行程序所需的操作。在运行 Intel 或 AMD 的计算机中,软件生成的中断指令紧跟在 POS SS 指令之后,立刻让处理器进入内核的中断处理程序。随后,由于 POP SS 导致异常被延迟,会触发调试异常。

由于英特尔的 x86-64 手册关于 POP SS 指令及其与中断门语义相互作用的注意事项不清楚甚至不完整,让操作系统开发者和供应商误以为处理程序在不可中断的状态下启动。但事实上,调试异常需要在处理程序中断的早期进行处理,否则用户应用程序可以利用开发者的这种误解,在运行 Intel 的计算机中利用 POP SS 和 INT 指令,控制中断处理程序中的特殊指针 GSBASE。而在运行 AMD 的计算机中,用户应用程序可以控制 GSBASE 和堆栈指针,导致内核崩溃,通过访问未映射的内存,提取部分受保护的内核内存,或者调整其内部结构导致系统崩溃或者操纵系统运行。

专家认为,上述任何尝试都可能导致内核崩溃,不过不会造成更严重的危害。但是,这也应当引起系统供应商注意。

目前,各大厂商都已知晓这个漏洞,并积极应对。Red Hat、Ubuntu 和苹果 MacOS 都已经着手推出补丁。而早在 2018 年 3 月,Linux 内核已经解决了这个问题,4.15.14、4.14.31、4.9.91、4.4.125 以及更早的 4.1、3.16 和 3.2版本都有相应的补丁。

微软也做出了回应,其 Windows 7 到 Windows 10 以及 Windows Server 2008 到 1803 版本都推出了补丁。Xen 4.6 到 4.10 版本也推出了修补程序。VMware 的虚拟机管理程序没有风险, vCenter Server 有对应的解决方案,vSphere 集成容器正在等待修复,但专家认为,二者都“可能受到影响”。

以下是美国 CERT/CC 列出的受影响厂商名单,提醒用户及时关注厂商动态,及时修复。

*参考来源:The Register,AngelaY 编译整理,转载请注明来自 FreeBuf

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-05-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机编程

ionic 2.x の初见与坑

<h3>1、简单介绍:</h3> <p >博主是从来没有碰过angularJS 1.x与ionic 1.x的初学者,面对它们两者同时进入2.0时代(隔壁vue...

1822
来自专栏FreeBuf

Windows系统的JScript组件被曝存在一个0day RCE

近期,Telspace Systems公司的安全研究专家Dmitri Kaslov在Windows操作系统的JScript组件中发现了一个严重的安全漏洞,而这个...

1050
来自专栏程序你好

.Net桌面系统架构设计

1401
来自专栏JavaEdge

Tomcat架构解析之1 架构简介1 核心架构模块说明2 分层建模3 作用域

3095
来自专栏迁移服务平台

腾讯云文件迁移使用指南

迁移上云的时候,会有迁移上腾讯云对象存储(cos)的需求,目前的迁移方案有两种:1、cos提供的COS Migration工具;2、客户自己利用友商和cos的a...

4134
来自专栏知识分享

1-关于ESP8266配网,单片机程序远程升级(我的配网和升级程序方式)

1.1K4
来自专栏JavaEdge

瞬时响应:网站的高性能架构一、网站性能测试二、Web前端性能优化三、应用服务器性能优化四、存储性能优化

4527
来自专栏LEo的网络日志

coding感想(三)

3878
来自专栏大魏分享(微信公众号:david-share)

厉害了:全数据中心密码管理系统的建设--构建数据中心一体化运维平台第三篇

前言:本文中所引用的文档均为Redhat 技术专家杨金锋所提供。此方案,大卫也多次请教红帽技术专家陈镇。 密码管理系统的必要性 在大多数客户数据中心内部,密...

5677
来自专栏Netkiller

应用程序的通信成本

应用程序的通信成本 什么是通信 一个程序中两个以上功能相互传递信号或数据叫做通信。 什么是成本 这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间...

3439

扫码关注云+社区

领取腾讯云代金券