千家信息网

个操作系统对MOV SS/POP 指令处理存在的是什么缺陷

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关个操作系统对MOV SS/POP 指令处理存在的是什么缺陷,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。0x00 漏洞描述
千家信息网最后更新 2026年11月01日个操作系统对MOV SS/POP 指令处理存在的是什么缺陷

这篇文章将为大家详细讲解有关个操作系统对MOV SS/POP 指令处理存在的是什么缺陷,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

0x00 漏洞描述

操作系统的开发者没有正确处理Intel 64和IA-32架构软件开发人员手册的系统编程指南中的一则声明,导致MOV SS/POP SS指令延迟的#DB异常可能产生意外的行为,引起操作系统崩溃甚至可以被用来提权(CVE-2018-8897)。在KVM中也存在类似的问题(CVE-2018-1087)。该漏洞影响范围广,危害等级重要。

0x01 漏洞影响面

漏洞影响Windows/MacOS/FreeBSD/Linux内核等现代流行的操作系统和KVM/Xen等虚拟化系统。

0x02 技术细节

假设现在要执行下面这两条指令:

同时设置了一个硬件访问断点,刚好mov ss, [rax]指令会触发这个硬件访问断点。

由于mov ss和pop ss指令会悬挂异常和中断,所以mov ss, [rax]指令虽然会产生硬件中断,但中断会被挂起,直到下一条指令执行完毕后才响应中断。执行int 3指令优先响应 int 3中断,CPU切入内核,执行IDT对应的3号中断向量。int 3中断会判断此次int 3来自R3还是R0,如果来自R3,选择交换GS。

但是此时还悬挂一个硬件中断,所以当执行第一条之前,就会立马去执行IDT 对应的1号中断向量,此时还没有交换GS。int 1属于中断门,此时是由int 3 响应代码中断过来的,权限为R0,会使用原来的GS。这样就在内核模式异常处理程序中运行了用户模式中设置的GS,可能会造成意外的后果。

下面是对公布在github上的在windows上利用此漏洞的提权代码中关键点的简要分析。

windows系统崩溃时会执行KeBugCheckEx,KeBugCheckEx中会执行RtlCaptureContext和KiSaveProcessorControlState,这给了我们获取程序控制流的机会。

如果我们通过设置DR寄存器在gs:20h+0x40+0xA0处设置一个硬件访问断点(作者给的偏移是gs:20h+0x100+0xA0),就能在KeBugCheckEx中进入到KiDebugTrapOrFault,KiDebugTrapOrFault->…->RtlCaptureContext,用户空间中的线程读取一次RSP,继续KiDebugTrapOrFault->…->RtlCaptureContext,用户空间中的线程再读取一次RSP,因为执行的流程一样,根据两次RSP值的差可以计算出下一次调用RtlCaptureContext时RSP的值,减去0x8是返回指针存放的位置。

接下来构造了一个禁用SMEP并跳转到shellcode的ROP链,存在XMM13-XMM15中。

前面把返回指针存放的位置减去XMM13在Context结构体中的偏移存在了伪造的PCR的结构中,之后恢复Context写XMM13-XMM15的时候ROP链覆盖了返回指针,从而执行了shellcode。成功利用之后效果如下。

0x03 修复建议

目前多家受影响的厂商已经提供了相关的补丁,360CERT建议广大用户按照提示进行更新,防范利用该漏洞的攻击。

Apple:https://support.apple.com/en-us/HT208742

FreeBSD Project:https://www.freebsd.org/security/advisories/FreeBSD-SA-18:06.debugreg.asc

Microsoft:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-8897

Red Hat:https://access.redhat.com/security/vulnerabilities/pop_ss

Ubuntu:https://usn.ubuntu.com/3641-1/

Ubuntu:https://usn.ubuntu.com/3641-2/

Xen:https://xenbits.xen.org/xsa/advisory-260.html

Linux Kernel:https://patchwork.kernel.org/patch/10311005/

Linux Kernel:https://patchwork.kernel.org/patch/10310757/

关于个操作系统对MOV SS/POP 指令处理存在的是什么缺陷就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

指令 系统 漏洞 操作系统 硬件 处理 用户 影响 内核 指针 断点 缺陷 意外 代码 位置 内容 向量 建议 文章 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 山东特亿宝互联网科技有限公司 A股互联网金融科技公司 中国 科技 互联网 中国互联网科技发展 远拓互联网科技 广州紫鲸互联网科技 国外互联网科技网站 甘肃拓世互联网科技有限公司 互联网汽车科技小镇 剑昆互联网络科技有限公司临桂 苏州五指互联网络科技有限 辽宁互联网新科技 燊美集互联网科技有限公司 华夏恒生科技与互联网科技 高科技互联网套路 山东星卡互联网科技有限公司官网 梅州GM互联网络科技有限公司 富国互联网科技002692 米泉互联网科技专业怎么样 云电互联网科技 沃里互联网科技 须眉科技是互联网公司吗 湖南诚度互联网科技有限公司 每天都有哪些好的互联网科技 互联网企业科技类企业如何做账 中国科技和美国互联网 恒生互联网科技趋势 东风日产互联网科技公司叫什么 知域互联网科技有限公司官网
0