當前位置:
首頁 > 新聞 > 詳解Pwn2Own中價值5萬美金的Firefox瀏覽器漏洞

詳解Pwn2Own中價值5萬美金的Firefox瀏覽器漏洞

在最近的Pwn2Own 2018比賽中,Richard Zhu僅僅使用一個漏洞就成功攻破了Mozilla Firefox。在比賽中他將錯誤交給Mozilla後,在不到24小時內他們迅速進行了更新。在本文中我將仔細分析一下Richard Zhu在比賽中使用的漏洞。

漏洞分析

這個越界寫入漏洞位於libvorbis,這是參考Vorbis音頻編解碼器解碼實現的。此漏洞被命名為ZDI-18-263(CVE-2018-5146),位於庫音頻合成過程的深處。該漏洞只能由具有1型殘留編碼的音頻文件觸發,並且在殘差計算過程中出現超出範圍的寫入。讓我們看看易受攻擊的函數vorbis_book_decodev_add():

該漏洞的核心是由於407行內部for循環中的數組邊界檢查不足造成的(上圖)。使用精心製作的Vorbis音頻文件指定足夠大的book-> dim,可以使i大於n,並在408行內部for循環的界限以外訪問a []數組。在Richard製作的Vorbis文件中,他已將book - > dim設置為96,n(未顯示)設置為1.這允許他通過a [] C數組並覆蓋進程內存的其他部分。

為了利用這個漏洞,Richard用交錯的Javascript Arrays和ArrayBuffers來驗證堆。他載入製作的Vorbis文件觸發超出邊界寫入漏洞以覆蓋陣列的長度。在損壞的Array中,Richard可以從損壞的Array中自由讀取和寫入ArrayBuffer。從那裡他構建了一個假的Javascript對象並劫持了vtable,使用ROP獲得代碼執行,並啟動了利用鏈的第二階段。

從受害者的角度來看,他們都是瀏覽了一個網站,最終受到了攻擊。從Richard的角度來看,他在Pwn2Own上的成功示範,使他獲得了5萬美元的收入。此漏洞的補丁很簡單,這也是響應速度如此之快的原因之一。 Xiph團隊在內部循環中增加了額外的檢查來防止出界限制訪問條件,還取消了手動循環展開優化,並在不同的殘差解碼函數中修正了類似的錯誤。

結論

Mozilla修復軟體的時間確實令人驚訝,尤其是漏洞本身不在其代碼庫中。您可以在他們的博客中詳細了解他們如何實現如此驚人的壯舉的。另外就是這個bug還提醒了用戶,針對瀏覽器的大型攻擊很可能是通過舊的第三方庫來尋找到機會的。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

Lazarus組織攻擊美中部在線賭場時所使用的工具集分析
評估網路犯罪規模的7大關鍵數據

TAG:嘶吼RoarTalk |