Chrome V8 Sentinel Value安全隱患:Uninitialized Oddball對象泄露可能導致沙箱逃逸

robot
摘要生成中

Sentinel Value在Chrome V8中的安全隱患

Sentinel value是算法中的特殊值,常用於循環或遞歸算法的終止條件。Chrome源碼中存在多種Sentinel value,其中一些如果泄露到JavaScript環境中可能導致安全問題。

之前有研究表明,泄露TheHole對象可以實現沙箱內任意代碼執行。谷歌團隊對此進行了修復。但實際上,V8中還有其他原生對象不應泄露到JS中,如Uninitialized Oddball對象。

Uninitialized Oddball對象的泄露可能導致沙箱逃逸。這個問題最早出現在Issue1352549中,目前仍未修復。該方法具有一定通用性,曾在多個漏洞中出現。

V8中的原生對象定義在v8/src/roots/roots.h文件中,它們在內存中相鄰排列。一旦這些對象泄露到JavaScript環境,就可能實現沙箱逃逸。

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

爲驗證這個問題,可以修改V8的native函數,將Uninitialized Oddball泄露到JavaScript中。具體可以修改%TheHole()函數的實現。

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

利用Uninitialized Oddball對象可以繞過HardenType保護。通過構造特定的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

對於修復建議,應在優化後的函數返回數組元素時,添加對數組map的檢查,避免直接計算偏移返回數值。

這個問題也提醒我們注意PatchGap,即某些軟件可能使用未修復該漏洞的V8版本。例如Skype目前仍未修復這個問題。在x86架構下,由於沒有地址壓縮,可以實現進程範圍內的任意讀寫。

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

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

總的來說,V8中還有多種Sentinel value可能存在類似安全隱患。建議進一步研究其他Uninitialized Oddball泄露的影響,考慮將這類對象納入模糊測試範圍,以發現更多潛在利用方式。無論如何,這類問題都可能大大縮短攻擊者的漏洞利用週期。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 5
  • 分享
留言
0/400
鸭鸭毛毛vip
· 9小時前
卧槽 这漏洞一听就爽啊~
回復0
空气币品鉴大师vip
· 07-11 14:18
就这还不赶紧修?v8搞啥呢
回復0
WhaleMistakervip
· 07-11 02:45
chrome的大漏洞又来了
回復0
Liquidity_Witchvip
· 07-11 02:42
啧 又发现漏洞了
回復0
ParallelChainMaxivip
· 07-11 02:35
好家伙,真能整活
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)