Chrome V8引擎新漏洞:泄露Uninitialized Oddball繞過沙箱

robot
摘要生成中

通過泄露Sentinel Value繞過Chrome V8 HardenProtect的內幕

前言

Sentinel value是算法中的一種特殊值,常用於循環或遞歸算法中作爲終止條件。Chrome源碼中廣泛使用了這類值。近期安全研究人員發現,通過泄露TheHole對象可以實現Chrome沙箱內的任意代碼執行。谷歌團隊隨後快速修復了這兩個在野漏洞。

然而,V8中還存在其他不應泄露到JavaScript中的原生對象。本文將討論一個新的對象:Uninitialized Oddball。這種繞過方法最早出現在Project0成員提交的Issue中,目前仍可在最新版V8中使用。

值得注意的是,這種方法具有較強的通用性:

  1. 在CVE-2021-30551中,首個POC就是泄露internal uninitialized oddball。

  2. CVE-2022-1486的POC也直接泄露了UninitializedOddball。

  3. 一個未分配CVE的Issue同樣使用了這種方法。

這些案例足以說明該問題的重要性,值得重新審視可能受影響的軟件。

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

V8中的Sentinel Value

V8的大多數原生對象定義在v8/src/roots/roots.h文件中,它們在內存中依次相鄰排布。一旦這些不應泄露的原生對象被泄露到JavaScript中,就可能導致沙箱內任意代碼執行。

我們可以通過修改V8的native函數,將Uninitialized Oddball泄露到JavaScript中。具體方法是修改%TheHole()函數中相對isolate的偏移,使其返回Uninitialized Oddball。

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

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

繞過HardenType

利用Uninitialized Oddball可以實現相對任意讀寫。關鍵在於,優化後的read函數只檢查了obj的prop屬性,但沒有檢查obj.prop作爲key的value。這導致在計算時發生類型混淆,從而實現任意讀。

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

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

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

在x86架構下,由於沒有地址壓縮,任意讀寫是相對於整個進程的。雖然缺少了地址壓縮帶來的便利,但由於某些大型軟件文件較大,仍可以較高概率讀寫到目標內容。

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

PatchGap警告

這次PatchGap不僅涉及Issue1352549,還包括類似Issue1314616和Issue1216437在內的多個漏洞。新的繞過方法公開後,這些漏洞的利用難度大幅降低。黑客幾乎不需要額外研究就可以完成完整利用鏈。

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

總結

V8中還有許多其他Sentinel value,它們也可能存在類似問題。這給我們一些啓示:

  1. 其他uninitialized_Oddball泄露是否也可實現V8 RCE?

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

  3. Fuzzer測試中是否應將Sentinel value作爲變量加入?

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

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

SENC1.44%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 轉發
  • 分享
留言
0/400
智能合约试错员vip
· 08-15 05:19
老漏洞新问题又来了
回復0
区块链打工人vip
· 08-13 17:55
v8这个漏洞很严重啊
回復0
SocialFiQueenvip
· 08-12 12:23
严重问题需关注解决
回復0
椰子丝半仙vip
· 08-12 12:15
绕过漏洞还没修复啊
回復0
链游韭菜收割机vip
· 08-12 12:12
哇 V8又出洞了
回復0
币圈资深幸存者vip
· 08-12 12:11
又见沙盒被绕过
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)