CVE-2020-17008 PoC公開
今年6月,微軟發(fā)布了補(bǔ)丁來修復(fù)CVE-2020-0986漏洞。CVE-2020-0986漏洞漏洞是Windows操作系統(tǒng)中的漏洞,攻擊者利用該漏洞可以將權(quán)限提升到kernel 級(jí)別。但微軟發(fā)布的補(bǔ)丁卻沒有完全修復(fù)該漏洞。研究人員發(fā)現(xiàn)黑客5月的PoC 代碼仍然可以使用,并且有其他研究人員還公開了其他的PoC代碼。
新的老漏洞
谷歌Project Zero研究人員Stone發(fā)現(xiàn)微軟6月份發(fā)布的補(bǔ)丁并沒有修復(fù)該漏洞,只要做一些調(diào)整仍然可以利用該漏洞。5月的時(shí)候,該漏洞主要被用來進(jìn)行權(quán)限提升,并和一個(gè)用于遠(yuǎn)程代碼執(zhí)行的IE漏洞組合使用。那時(shí)候,這2個(gè)漏洞都屬于0 day漏洞。
Stone稱攻擊者可以通過發(fā)送偏移量而不是指針來觸發(fā)CVE-2020-0986漏洞,將權(quán)限提升到kernel級(jí)別。
在推特上,研究人員稱該漏洞本來是一個(gè)任意指針間接引用漏洞,攻擊者利用該漏洞可以控制指向memcpy函數(shù)的src和dest 指針。
微軟發(fā)布的補(bǔ)丁將指針修改為偏移量,但是函數(shù)的參數(shù)仍然是可以被控制的,因此該漏洞仍然可以被利用。

目前該漏洞的新CVE編號(hào)為CVE-2020-17008,研究人員在技術(shù)報(bào)告中介紹了如何觸發(fā)該漏洞,詳見https://bugs.chromium.org/p/project-zero/issues/detail?id=2096
簡(jiǎn)單來說,低完整性的進(jìn)程可以發(fā)送LPC消息給splwow64.exe(中等完整性),并獲得splwow64 內(nèi)存空間的write-what-where 原語。攻擊者可以控制目的地址、被復(fù)制的內(nèi)容、通過memcpy 調(diào)用復(fù)制的字節(jié)數(shù)。目的指針計(jì)算的偏移量受限于:
- Offset <= 0x7FFFFFFF
- Offset + perceived size of structure <= 0x7FFFFFFF
- Splwow64可以將LPC 消息傳遞給GdiPrinterThunk。有漏洞的memcpy就在消息0x6D中。
PoC
為證明微軟發(fā)布CVE-2020-0986漏洞補(bǔ)丁后,仍然可以利用,stone根據(jù)Kaspersky發(fā)布的CVE-2020-0986 漏洞PoC 修改并發(fā)布了CVE-2020-17008漏洞的PoC代碼,參見https://bugs.chromium.org/p/project-zero/issues/detail?id=2096
研究人員介紹說該P(yáng)oC觸發(fā)了該漏洞2次,第一次是泄露消息存儲(chǔ)和偏移量加的堆地址來生成指針,然后進(jìn)行write-what-where 操作。
時(shí)間線
微軟在9月24日收到漏洞報(bào)告,隨后確認(rèn)該漏洞,并分配CVE編號(hào)CVE-2020-17008。微軟計(jì)劃于2020年11月發(fā)布該漏洞的補(bǔ)丁,但是在測(cè)試階段出現(xiàn)了問題,因此決定推后到1月的微軟補(bǔ)丁日發(fā)布,即2021年1月12日。
Project Zero的漏洞公開政策是90天,如果需要更多時(shí)間來推送補(bǔ)丁的話可以延長14天。由于微軟不能在1月6日之前發(fā)布補(bǔ)丁,且2個(gè)deadline都過了,所以研究人員決定公開該漏洞。
此外,Stone稱攻擊者已經(jīng)開始利用該漏洞了,所以如果此次發(fā)布的補(bǔ)丁不是完全有效,攻擊者可能會(huì)再次利用該漏洞。
更多技術(shù)細(xì)節(jié)參見: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/如若轉(zhuǎn)載,請(qǐng)注明原文地址。