-
为什么提高IRQL到DISPATCH_LEVEL级就能禁止线程切换?
-
Intel sysret 在64位windows下引发的漏洞
漏洞描述
根据Intel手册描述,其64位 CPU 下的sysret指令不主动进行栈切换,需要由开发人员自己显式切换GS、RBP和 RSP,当以上受影响操作系统由kernel-mode返回user-mode时,首先将GS,RBP和RSP恢复为user-mode的值,然后调用sysret。但是当返回地址为无效地址(有效地址的48-63位必须和第47位一致)时,sysret将会触发#GP异常,此时会跳到KiGeneralProtectionFault执行,由于 此时CPU运行在ring0,但RSP、RBP、GS已经切到user-mode地址空间,若精心构造gs所指向的值,可导致ring0下执行任意代码。
-
CVE-2011-2018 未初始化TrapFrame.TempSegCs引发的漏洞。
-
漏洞描述
在VMware x64 Guest OS中, 利用其模拟指令的缺陷可导致以ring 0权限执行任意代码。
-
#GP 异常处理函数设计缺陷引发的漏洞(CVE-2010-0232)
-
CAN-2003-0910(Windows Expand-Down 数据段 权限提升漏洞)
-
漏洞描述
漏洞发生在KiTrap06函数中, 当“BOP”发生时,此函数就会取出CONTEXT结构里保存的环境,返回到NtVdmControl函数,最后回到ntvdm.exe的用户态部分进行处理。但是因为任何进程都可以读写ntvdm.exe进程地址空间中保存的CONTEXT结构中的数据,而KiTrap06并未验证环境结构的有效性,导致可以修改保存在CONTEXT结构里的返回地址和代码段选择子,进而在内核态执行用户态提供的代码来进行本地权限提升。