安全研究人員發(fā)現(xiàn)了Windows中25種以上的潛在漏洞,其中一些可能導(dǎo)致特權(quán)提升。
該錯(cuò)誤影響了已經(jīng)存在于操作系統(tǒng)中數(shù)十年的用戶界面win32內(nèi)核(win32k)組件,并影響了所有版本的Windows(包括Windows 10),因?yàn)镸icrosoft保持代碼向后兼容。
實(shí)際上,研究人員在最新的Windows Insider Preview中測試了來賓帳戶上的漏洞,該漏洞于2019年9月進(jìn)行了更新。
在本周發(fā)布的白皮書(PDF)中,以色列安全研究員Gil Dabah著重研究了Handle Manager組件的UI對象引用計(jì)數(shù)機(jī)制,該機(jī)制容易受到新型攻擊。
Dabah說,對這些問題的研究基于先前對用戶模式回調(diào)漏洞的調(diào)查,這些調(diào)查的根源是win32k最初設(shè)計(jì)為以用戶模式運(yùn)行,然后才移至內(nèi)核。導(dǎo)致釋放后使用(UAF)攻擊的許多錯(cuò)誤已在最近幾年得到解決。
新發(fā)現(xiàn)的攻擊針對的是win32k中對象銷毀的工作方式-對象的鏈接方式可以允許在銷毀目標(biāo)對象時(shí)銷毀受害者對象。
從本質(zhì)上講,該攻擊可確保將受害子窗口與目標(biāo)窗口對象一起銷毀。創(chuàng)建子窗口時(shí),父窗口將被鎖定,因?yàn)榇翱趧?chuàng)建會(huì)回調(diào)到用戶模式,并且只有在創(chuàng)建成功(并且子窗口繼續(xù)使用)時(shí)才被釋放。
“在我們的攻擊中,我們找到了一種在ThreadUnlock函數(shù)中創(chuàng)建父窗口將消失(釋放)的情況的方法,只需利用內(nèi)核在窗口創(chuàng)建例程中回調(diào)回用戶模式的事實(shí),并即使父窗口處于鎖定狀態(tài),我們也會(huì)從用戶模式中破壞該父窗口。”研究人員解釋說。
父窗口在ThreadUnlock內(nèi)部被破壞,這也破壞了子窗口,從而導(dǎo)致UAF條件,其中使用了不存在的窗口對象。Dabah指出,沒有特權(quán)的攻擊者最終可能會(huì)利用這種情況。
“與先前的研究攻擊技術(shù)不同,因?yàn)樵趯ο笳嬲尫艜r(shí)沒有回調(diào)到用戶模式,為了能夠偽造替代假窗口對象以使攻擊成功,因此兩次攻擊之間存在競爭條件。窗口對象已釋放,并且再次使用了該時(shí)間!彼f。
Dabah在其研究論文中不僅描述了攻擊的工作原理,還提供了有關(guān)已發(fā)現(xiàn)漏洞的信息。他還發(fā)布了針對25個(gè)漏洞中的13個(gè)的概念驗(yàn)證(PoC)代碼。發(fā)現(xiàn)的漏洞中有11個(gè)可以被濫用來提升特權(quán)。
研究人員解釋說,Windows 10 中的TypeIsolation緩解技術(shù)使對其中一些問題的利用更加困難,但是指出,針對具有相同對象類型的較舊Windows迭代仍然是完全可行的。
他說,微軟已經(jīng)解決了其中一些問題,但是尚未廣泛采取緩解措施。