V8引擎Sentinel值泄露漏洞:Chrome沙箱逃逸新方法分析

探討Chrome V8引擎中Sentinel Value的安全隱患

Sentinel value是算法中的一個特殊值,通常在循環或遞歸算法中作爲終止條件存在。Chrome源碼中有很多Sentinel value。近期研究表明,通過泄露特定Sentinel value對象可能導致Chrome沙箱內任意代碼執行。

本文將討論一個新的Sentinel value對象:Uninitialized Oddball。這種繞過方法最早出現在某漏洞報告中,由安全研究人員給出完整代碼。值得注意的是,目前該方法仍可用於最新版V8,尚未得到修復。

該方法具有較強通用性:

  1. 在某CVE漏洞中,最初的poc就是泄露internal uninitialized oddball。

  2. 另一個CVE漏洞報告中,研究人員直接泄露UninitializedOddball,雖然當時利用鏈不完整,但已顯示出安全隱患。

  3. 在最近的一個漏洞報告中給出了完整利用方法。

這些案例說明了該問題的普遍性和嚴重性。截至目前,某通訊軟件尚未修復該漏洞。

Sentinel value在V8中的應用

V8源碼中定義了大量原生對象,它們在內存中依次相鄰排布。一旦將不應泄露的原生對象暴露給JavaScript,就可能實現沙箱內任意代碼執行。

爲驗證該方法在最新V8中的有效性,我們可以修改V8的native函數,將Uninitialized Oddball泄露到JavaScript中。

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

繞過HardenType保護

我們可以構造代碼,當某函數返回UninitializedOddball時,實現相對任意讀取。分析優化後的匯編代碼可以發現,函數只檢查了對象的屬性是否正確,但沒有檢查屬性對應的值,直接按JavaScript語義計算偏移獲取數組元素,從而造成類型混淆,實現任意讀取。

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

同理,任意寫入也可以通過類似方法構造。建議在優化函數返回數組元素時,增加對數組map的檢查,避免直接計算偏移返回值。

安全隱患提醒

分析表明,某通訊軟件目前仍未修復該漏洞。在x86系統下,由於缺少地址壓縮,任意讀寫直接相對於整個進程。雖然開啓了ASLR,但由於文件較大,仍有較大概率讀寫到關鍵內容。結合PE解析等方法,可能在短時間內完成完整利用鏈。

這次安全隱患不僅涉及單個漏洞,還導致了之前一些類似漏洞利用難度大幅降低。黑客幾乎不需要額外研究即可實現完整利用,包括之前報告的所有類似漏洞。

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

總結

本文簡要討論了通過泄露Uninitialized Oddball實現任意讀取的方法。V8中還有很多其他Sentinel value,可能存在類似安全隱患。這給我們一些啓示:

  1. 其他Sentinel value泄露是否也可能導致V8沙箱逃逸?

  2. 此類問題是否應被正式視爲安全漏洞?

  3. 是否有必要在fuzz測試中加入Sentinel value相關變量,以發現更多潛在問題?

無論如何,這類問題都可能大大縮短黑客實現完整利用的週期,值得高度重視。

獨家揭祕通過泄露Sentinel Value繞過Chrome v8 HardenProtect

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 4
  • 分享
留言
0/400
无情的套利机器vip
· 07-11 10:52
谷歌咋搞的 这都能出漏洞
回復0
SelfSovereignStevevip
· 07-10 20:07
浏览器保护在哪咯
回復0
稳定币套利者vip
· 07-10 19:58
嗯,又一个漏洞,有99.8%可能在任何有意义的套利机会之前被修补...
查看原文回復0
DeFi攻略vip
· 07-10 19:45
浏览器也有空投了? 这波能薅么
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)