谷歌的 Project Zero 團隊以其在公司內部以及其他公司生產的產品中發現并披露安全漏洞的能力而聞名。其成員在軟件中找到缺陷,私下向制造商報告,并在公開披露之前給他們 90 天的時間來解決問題。去年,該團隊發現了 Windows 10 S 和 Microsoft Edge 的漏洞。現在,它暴露了 macOS 內核中的“高嚴重性”缺陷。

  谷歌 Project Zero 的一名安全研究人員發現,盡管 macOS 的內核 XNU 在某些情況下允許寫入時復制(COW)行為,但任何復制的內存都不可用于源進程的修改。雖然 COW 是一種本質上沒有缺陷的資源管理技術,但還是留下了一些問題。

谷歌披露了macOS內核中存在的高危險性缺陷

Project Zero 發現,如果修改了用戶擁有的已掛載文件系統映像,則不會通知虛擬管理子系統這些更改,這意味著攻擊者可以采取惡意操作,而無需掛載的文件系統了解它。

  這種寫時復制行為不僅適用于匿名內存,還適用于文件映射。這意味著,在目標進程開始從傳輸的存儲區讀取之后,存儲器壓力可能導致保留傳輸的存儲器的頁面被從頁面緩存中逐出。稍后,當再次需要被驅逐的頁面時,可以從后備文件系統重新加載它們。

  這意味著如果攻擊者可以在不通知虛擬管理子系統的情況下改變磁盤文件,由此形成了一個高危安全漏洞。 macOS 允許普通用戶掛載文件系統映像。當安裝的文件系統映像直接發生變化時(例如,通過在文件系統映像上調用 pwrite()),此信息不會傳播到已安裝的文件系統中。

  研究人員向蘋果公司通報了發現于 2018 年 11 月的這一缺陷,但該公司在超過 90 天的最后期限之后仍未修復,這就是為什么這個漏洞現在以“高嚴重性”標簽公開。不過,蘋果已經收到了這個問題,正在與 Project Zero 合作未來 macOS 版本的補丁。

  您還可以在此處查看專用網頁上演示此問題的概念驗證代碼。