📢 Gate廣場 #MBG任务挑战# 發帖贏大獎活動火熱開啓!
想要瓜分1,000枚MBG?現在就來參與,展示你的洞察與實操,成爲MBG推廣達人!
💰️ 本期將評選出20位優質發帖用戶,每人可輕鬆獲得50枚MBG!
如何參與:
1️⃣ 調研MBG項目
對MBG的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與MBG相關活動(包括CandyDrop、Launchpool或現貨交易),並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是現貨行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
MBG熱門活動(帖文需附下列活動連結):
Gate第287期Launchpool:MBG — 質押ETH、MBG即可免費瓜分112,500 MBG,每小時領取獎勵!參與攻略見公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通過首次交易、交易MBG、邀請好友註冊交易即可分187,500 MBG!參與攻略見公告:https://www.gate.com/announcements
Chrome V8引擎Sentinel Value泄露漏洞分析與防御
泄露Sentinel Value繞過Chrome V8 HardenProtect的技術分析
Sentinel value是算法中的特殊值,通常在循環或遞歸算法中作爲終止條件存在。Chrome源碼中有許多Sentinel value。近期有研究表明,通過泄露TheHole對象可以實現CVE-2021-38003和CVE-2022-1364的沙箱內任意代碼執行。谷歌團隊隨後對這兩個野外漏洞進行了更新。
除了TheHole對象外,V8中還有其他不應泄露到JavaScript中的原生對象。本文討論的是Uninitialized Oddball對象,這種繞過方法目前仍可用於最新版V8。
V8的大部分原生對象定義在v8/src/roots/roots.h文件中,這些對象在內存中相鄰排布。一旦將不應泄露的原生對象泄露到JavaScript中,就可能實現沙箱內任意代碼執行。
爲驗證該方法,可以通過修改V8的native函數,將Uninitialized Oddball泄露到JavaScript中。具體可以修改%TheHole()函數中相對isolate的偏移,使其返回Uninitialized Oddball。
利用Uninitialized Oddball可以實現相對任意讀寫。優化後的JavaScript read函數會直接按JavaScript語義計算偏移,求取數組的數值,從而導致類型混淆,實現任意讀。
建議的修復方案是,對優化後的函數返回數組元素時,添加對數組map的檢查,避免直接計算偏移返回數組數值。
值得注意的是,這種方法不僅適用於Chrome,其他使用V8引擎的軟件也可能受影響。例如Skype目前仍未修復該漏洞。在x86下,由於沒有地址壓縮,任意讀寫是直接相對於整個進程的。
總的來說,通過泄露Sentinel value中的uninitialized_Oddball可以實現任意讀原語。V8中還有其他Sentinel value可能導致類似問題。建議將這些Sentinel value作爲變量加入fuzzer,以挖掘更多潛在的利用原語。無論是否被正式視爲安全問題,這類問題都會大大縮短黑客實現完整利用的週期。