ZDI總結全年最重要的五個漏洞
寫在前面的話
在這一年即將結束之際,我們在此回顧一下我們在2020年收到的一些最有意思的漏洞報告。毫無疑問,將今年已報告的1400多個漏洞縮減為只有5個,這絕對是一個相當大的挑戰。在這篇文章中,我們所分析的這5個安全漏洞是從這1400多個漏洞中脫穎而出的,接下來,我們一起看看到底是哪五個漏洞殺出了重圍。
CVE-2020-0688/ZDI-20-258
CVE-2020-0688/ZDI-20-258:Microsoft Exchange Server的Exchange控制面板加密密鑰遠程代碼執行漏洞
這個漏洞是Microsoft Exchange Server的Exchange控制面板中存在的一個加密密鑰遠程代碼執行漏洞。該漏洞是由一位匿名安全研究專家上報的,Microsoft Exchange Server中的這個高度嚴重的漏洞將允許任何經過身份驗證的Exchange用戶獲得服務器上的SYSTEM權限。該漏洞位于Exchange管理中心Web界面中,即雖然這個Web界面被稱為“管理”界面,但在默認情況下,任何擁有Exchange服務器上郵箱憑據的或者可以在網絡上公開訪問Outlook Web Access的用戶都可以使用該界面。漏洞與Exchange管理中心(ASP.NET應用程序)中安裝的加密密鑰(“計算機密鑰”)有關,xchange應該在安裝時隨機生成這些密鑰,以便實現保持對每個安裝的機密性和唯一性。但是現在,它們卻是從安裝介質中逐字復制的,因此外部攻擊者可以通過引用產品的任何其他安裝源來獲取到這些密鑰。攻擊者可以利用獲取到的密鑰信息偽造出將在服務器上反序列化的消息,從而實現任意代碼的執行。Exchange服務器中的這個漏洞非常嚴重,因為Exchange一般都扮演著企業神經中樞的角色,這使得該漏洞成為了網絡犯罪分子眼中一個非常有價值的目標。如果您的組織目前還沒有修復該漏洞的話,我們建議大家盡快修復。
參考資料:【點我獲取】
CVE-2020-3992/ZDI-20-1377
CVE-2020-3992/ZDI-20-1377:VMware ESXi SLP用后釋放遠程代碼執行漏洞

這個漏洞是由ZDI漏洞研究人員Lucas Leong發現的,ESXi是由VMWare開發的企業級管理程序,ESXi中默認啟用的協議之一是服務位置協議(SLP)。SLP是一種使客戶端能夠發現網絡服務的協議,目前最流行的SLP實現就是OpenSLP了。然而,Lucas發現ESXi使用的是他們自己的定制實現方式。重要的是,這個自定義實現中存在設計缺陷,從而導致了兩個嚴重的安全問題出現。其中一個安全問題將導致程序在SLPDProcessMessage()中釋放SLPMessage對象,但是該程序仍會在SLPDatabase結構中保留對已釋放對象的引用。這也就導致了用后釋放(UAF)的情況出現,而遠程攻擊者將能夠通過網絡來觸發并利用該漏洞。這個漏洞最初被標記為了ZDI-CAN-11563。但是,VMWare所提供的安全補丁并沒有完全解決這個問題,這便導致了ZDI-CAN-12190的出現。應該注意的是,除了可以遠程利用之外,這些SLP問題還可以被攻擊者利用來幫助在受限環境中運行的程序實現沙箱逃逸。這也足以證明,即使是經過大量研究的產品,比如說ESXi,也有可能存在嚴重的攻擊面,這些攻擊面往往容易被忽視,因此存在較嚴重的安全風險。
CVE-2020-9850/ZDI-20-672
CVE-2020-9850/ZDI-20-672:Apple Safari JIT模式下的類型混淆遠程代碼執行漏洞

這個漏洞是由喬治亞理工系統軟件與安全實驗室的團隊在春季Pwn2Own競賽中報告的,該漏洞同時也是一條有趣漏洞利用鏈(與Webkit的類型混淆問題有關)的一部分。由于這個漏洞,Safari將具備執行“.app”符號鏈接的能力,這是由OpenGL的CVM(核心虛擬機)中的堆溢出漏洞所導致的。此外,由于競爭條件的存在,將有可能在cfprefsd和kextload中實現root訪問或權限提升。研究人員在Pwn2Own上成功演示了該漏洞,并贏得了七萬美金的漏洞獎勵。這個漏洞的利用場景比較可怕,因為當一個毫無防備的受害者在訪問一個簡單的網頁時,這一切他都是毫不知情,因為瀏覽網頁10秒后,惡意代碼將會在目標用戶的設備上運行,一切都是在后臺悄悄完成的。
CVE-2020-7460/ZDI-20-949
CVE-2020-7460/ZDI-20-949:FreeBSD內核sendmsg系統調用TOCTU權限提升漏洞

這個漏洞是由一個名叫m00nbsd的研究人員報告給ZDI的。該漏洞允許攻擊者利用32位sendmsg()系統調用中存在的TOCTU漏洞,以初始為非特權的用戶身份在FreeBSD上執行內核級代碼。該漏洞是系統調用中的一個雙重獲取漏洞,為了觸發溢出,用戶必須必須在第一次訪問和第二次訪問之間用更大的值替換其中一個MsgLen值。攻擊者可以通過在循環中生成一個調用sendmsg()的線程來觸發該漏洞,并為其提供正確的參數。然后,它們可以生成另一個線程,用一個巨大的值替換其中一個MsgLen,然后將正確的值放回一個循環中。接下來,等待兩個線程爭用這個資源,便會觸發溢出。令人驚訝的是,這個漏洞隱藏得并不深,但這么多年來卻沒人發現它。如需了解更多關于此漏洞的細節(包括PoC),可以參考這篇【文章】。
CVE-2020-17057/ZDI-20-1371
CVE-2020-17057/ZDI-20-1371:Microsoft Windows DirectComposition未初始化的指針權限提升漏洞
一位匿名研究員向ZDI報告了這個漏洞。這個漏洞存在于Windows DirectComposition內核模式圖形組件之中,win32kbase!DirectComposition::CInteractionTrackerMarshaler::SetBufferProperty函數基于從用戶模式傳遞的數據填充DirectComposition::CInteractionTrackerMarshaler類型的對象。如果此函數遇到無效數據,它將切換到一條錯誤路徑,該路徑將嘗試釋放函數已創建并存儲在對象中的資源。由于此錯誤路徑中存在安全問題,可能會影響函數釋放從未初始化的指針。這使攻擊者能夠在內核模式下控制指令指針,從而獲得SYSTEM權限。
總結
我們回顧了今年提交給ZDI項目的一些最佳漏洞,多年來,許多事情都發生了變化,但我們與來自全球各地的獨立安全研究人員合作的愿望從未動搖過。如果您已經參與到了我們的計劃之中,我們感謝您的辛勤工作和參與。如果您還沒有提交計劃,我們希望您將來考慮提交。