Chrome V8引擎Sentinel Value安全漏洞分析與利用

robot
摘要生成中

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

Sentinel value是算法中的一種特殊值,通常在循環或遞歸算法中作爲終止條件使用。Chrome源碼中存在多種Sentinel value,其中一些可能導致安全漏洞。本文將討論通過泄露Uninitialized Oddball對象來繞過Chrome V8引擎的HardenProtect保護機制。

V8中的Sentinel Value

V8引擎中定義了多種原生對象,這些對象在內存中依次相鄰排布。如果將不應泄露到JavaScript中的原生對象泄露出去,可能會導致沙箱內任意代碼執行。

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

繞過HardenType保護

通過修改V8的native函數,可以將Uninitialized Oddball對象泄露到JavaScript中。利用這個泄露的對象,可以實現相對任意讀寫操作,從而繞過HardenType保護。

具體實現方法是:

  1. 修改%TheHole()函數,使其返回Uninitialized Oddball對象
  2. 構造特殊的JavaScript代碼,利用優化後的函數中缺少對數組map的檢查,直接計算偏移返回數組數值
  3. 通過類型混淆,實現任意讀寫

獨家揭祕通過泄露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

PatchGap風險提示

這種繞過方法不僅適用於最新版V8,還可能影響使用舊版V8的軟件。例如,Skype目前仍未修復這個漏洞。在x86架構下,由於缺少地址壓縮,任意讀寫的範圍可能會更大。

此外,這個新的繞過方法還可能降低其他相關漏洞的利用難度,如Issue1314616和Issue1216437等。

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

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

總結與思考

V8中還存在其他多種Sentinel value,它們可能同樣存在安全隱患。未來的研究方向可能包括:

  1. 探索其他Uninitialized Oddball泄露是否也能實現V8的RCE
  2. 考慮將Sentinel value作爲變量加入模糊測試,以發現更多潛在的利用原語
  3. 關注此類問題是否會被正式視爲安全問題,並評估其對縮短黑客完整利用週期的影響

無論這類問題是否被正式歸類爲安全問題,它們都可能大大縮短黑客實現完整利用的時間。因此,持續關注和研究Sentinel value相關的安全問題至關重要。

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

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 分享
留言
0/400
资深毛衣爱好者vip
· 07-08 03:03
又是v8的洞?上个月才修了一堆
回復0
HashBardvip
· 07-05 03:39
omg v8的哨兵就像诗歌一样... 破碎的哨兵透露了所有的秘密 fr fr
查看原文回復0
挖矿退役军人vip
· 07-05 03:38
这bug我闭眼都能写个exp
回復0
Ghost in the Chainvip
· 07-05 03:31
v8引擎又玩了个大的啊
回復0
DeFi厨师长vip
· 07-05 03:30
有趣哦 得多关注这漏洞
回復0
TradFi难民vip
· 07-05 03:17
这个洞我熟 没毛病~
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)