📢 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安全隐患深度分析
深入探讨Chrome V8引擎中Sentinel Value的安全隐患
Sentinel value是算法中的一种特殊值,通常用作循环或递归算法中的终止条件。Chrome源码中广泛使用了Sentinel value。近期,安全研究人员发现可以通过泄露TheHole对象实现Chrome沙箱内任意代码执行。谷歌团队迅速修复了这一漏洞。
然而,V8中还存在其他不应泄露到JavaScript中的原生对象。本文将重点讨论Uninitialized Oddball对象,该对象的泄露可能导致更广泛的安全隐患。目前,该方法仍可用于最新版V8,谷歌尚未针对此问题进行修复。
值得注意的是,这种方法具有较强的通用性:
CVE-2021-30551中首次提出了泄露internal uninitialized oddball的poc。
CVE-2022-1486的poc中也直接泄露了UninitializedOddball。
Issue1352549(尚未分配CVE)展示了完整的利用代码。
这些案例充分说明了对可能受影响软件进行全面检查的必要性。截至目前,Skype仍未修复该漏洞。
V8中的Sentinel Value
V8的大部分原生对象定义在v8/src/roots/roots.h文件中,这些对象在内存中相邻排列。一旦将不应泄露的原生对象泄露到JavaScript中,就可能实现沙箱内任意代码执行。
为验证该方法在最新版V8中的有效性,我们可以通过修改V8的native函数,将Uninitialized Oddball泄露到JavaScript中。具体方法是修改%TheHole()函数中相对isolate的偏移,使其返回Uninitialized Oddball。
绕过HardenType保护
通过简化Issue1352549中给出的代码,我们可以在V8 11.0.0版本中实现相对任意读取:
当%TheHole()返回UninitializedOddball时,优化后的JavaScript read函数会直接按JavaScript语义计算偏移,而不检查obj.prop的Value,从而导致类型混淆,实现任意读取。
与TheHole对象类似,由于uninitialized_oddball在V8内存中排序靠前且更原始,更易于伪造。在TheHole缓解措施被绕过后,该方法成为首选绕过方案。
建议的修复方法是在优化后的函数返回数组元素时,增加对数组map的检查,避免直接计算偏移返回数组值。
PatchGap警告
分析Issue1352549后,我们发现Skype目前仍未修复该漏洞。在x86环境下,任意读写略有不同:由于没有地址压缩,任意读写直接相对于整个进程。
虽然Skype启用了ASLR,但由于文件较大,直接放在4GB内存中,攻击者只需对特定地址进行读写,就有很大概率读写到Skype文件内容。结合PE解析等传统方法,完成整个漏洞利用链并非难事。
这次PatchGap不仅涉及Issue1352549,新绕过方法的公开还大大降低了类似CVE-2022-1486和CVE-2021-30551的利用难度。攻击者几乎无需额外研究即可完整利用任何泄露uninitialized_oddball的漏洞。
总结
本文简要讨论了通过泄露Sentinel value中的uninitialized_Oddball来实现任意读取原语。V8中还存在其他Sentinel value,测试时也经常遇到崩溃。鉴于Uninitialized_Oddball和TheHole均可在V8中实现环节绕过,我们有理由怀疑其他Sentinel value也可能导致类似问题。
这给我们以下启示:
其他uninitialized_Oddball泄露是否也能轻易实现V8的RCE。
谷歌迅速修复TheHole绕过,但长期搁置利用垃圾回收实现ASLR绕过,表明此类问题是否被视为正式安全问题仍存在模糊边界。
如果将其视为正式安全问题,是否有必要在fuzzer中将%TheHole/uninitialized_Oddball等Sentinel value作为变量加入,以发掘其他利用原语。
无论如何,这类问题都会大大缩短攻击者实现完整利用的周期。