Google Project Zero白帽研究员James Forshaw发现位于Windows kernel模式驱动中的漏洞,利用该漏洞可以进行权限提升。该漏洞是由于处理特定请求时缺乏必要检查导致的。Windows使用PreviousMode域来设置UserMode或KernelMode,然后确定调用的参数是否来源于可信源。该机制也用于文件创建和打开,kernel模式代码可以从不同的API函数中选择,包括到I/O管理器内部函数IopCreateFile的函数。在这种情况下,PreviousMode会被分配一个特定的变量来确定是否检查有效的参数和缓存。操作系统使用该变量进行设备对象的检查,即是否是UserMode。IopCreateFile中的Options参数会暴露给一些API函数,这些API函数只能从kernel模式来调用以设定覆盖AccessMode的flag,并设置为KernelMode。
研究人员认为第三方驱动也存在被攻击者利用的风险,因此建议所有的kernel驱动开发者尽快检查带来确保IRP请求的正确处理,并对文件打开API的使用进行防护。微软称会在未来的Windows操作系统版本中解决该bug,会在Windows 10 19H1中应用大多数的补丁。