当前位置: 首页 > 科技观察

CVE-2020-17008PoC公开

时间:2023-03-12 10:10:00 科技观察

今年6月,微软发布了修复CVE-2020-0986漏洞的补丁。CVE-2020-0986漏洞是Windows操作系统中的一个漏洞,攻击者可以利用该漏洞将权限提升到内核级别。不过,微软发布的补丁并没有完全修复该漏洞。研究人员发现,黑客从5月开始的PoC代码仍然可用,其他研究人员已经发布了其他PoC代码。新老漏洞谷歌零项目研究员斯通发现,微软6月份发布的补丁并没有修复该漏洞,只要进行一些调整,该漏洞仍然可以被利用。早在5月份,该漏洞主要用于权限提升,并与IE漏洞结合用于远程代码执行。当时这两个漏洞都属于0-day漏洞。Stone表示,攻击者可以通过发送偏移量而不是指针来触发CVE-2020-0986漏洞,从而将权限提升到内核级别。研究人员在推特上表示,该漏洞原本是一个任意指针间接引用漏洞,攻击者可以利用该漏洞控制memcpy函数的src和dest指针。微软发布的补丁将指针改为了一个偏移量,但是函数的参数仍然可以控制,所以漏洞仍然可以被利用。目前该漏洞新的CVE编号为CVE-2020-17008。研究人员在一份技术报告中介绍了如何触发该漏洞。详情见https://bugs.chromium.org/p/project-zero/issues/detail?id=2096简单来说,低完整性进程可以向splwow64.exe发送LPC消息(中等完整性),并获取splwow64内存空间的write-what-where原语。攻击者可以控制目标地址、复制的内容以及memcpy调用复制的字节数。目标指针计算的偏移量是有限制的:Offset<=0x7FFFFFFOffset+perceivedsizeofstructure<=0x7FFFFFFFSplwow64可以将LPC消息传递给GdiPrinterThunk。易受攻击的memcpy在消息0x6D中。PoC证明微软发布CVE-2020-0986漏洞补丁后,仍然可以被利用。Stone根据卡巴斯基发布的CVE-2020-0986漏洞PoC修改发布了CVE-2020-17008漏洞的PoC代码。见https://bugs.chromium.org/p/project-zero/issues/detail?id=2096研究人员介绍,PoC两次触发该漏洞。第一次是泄露消息存储的堆地址和偏移量生成指针。然后执行write-what-where操作。时间线微软于9月24日收到漏洞报告,随后确认了该漏洞并分配了CVE编号CVE-2020-17008。微软计划在2020年11月发布该漏洞的补丁,但在测试阶段出现问题,因此决定推迟到1月份的微软补丁日发布,即2021年1月12日。ProjectZero的漏洞披露政策是90天,如果需要更多时间推送补丁,可以延长14天。由于微软无法在1月6日之前发布补丁,而且两个截止日期都已过去,因此研究人员决定披露该漏洞。此外,斯通表示,攻击者已经开始利用该漏洞,因此如果此次发布的补丁没有完全生效,攻击者可能会再次利用该漏洞。更多技术细节参见:https://bugs.chromium.org/p/project-zero/issues/detail?id=2096本文翻译自:https://www.bleepingcomputer.com/news/security/windows-zero-day-with-bad-patch-gets-new-public-exploit-code/如有转载请注明出处。