💙 Gate广场 #Gate品牌蓝创作挑战# 💙
用Gate品牌蓝,描绘你的无限可能!
📅 活动时间
2025年8月11日 — 8月20日
🎯 活动玩法
1. 在 Gate广场 发布原创内容(图片 / 视频 / 手绘 / 数字创作等),需包含 Gate品牌蓝 或 Gate Logo 元素。
2. 帖子标题或正文必须包含标签: #Gate品牌蓝创作挑战# 。
3. 内容中需附上一句对Gate的祝福或寄语(例如:“祝Gate交易所越办越好,蓝色永恒!”)。
4. 内容需为原创且符合社区规范,禁止抄袭或搬运。
🎁 奖励设置
一等奖(1名):Gate × Redbull 联名赛车拼装套装
二等奖(3名):Gate品牌卫衣
三等奖(5名):Gate品牌足球
备注:若无法邮寄,将统一替换为合约体验券:一等奖 $200、二等奖 $100、三等奖 $50。
🏆 评选规则
官方将综合以下维度评分:
创意表现(40%):主题契合度、创意独特性
内容质量(30%):画面精美度、叙述完整性
社区互动度(30%):点赞、评论及转发等数据
Chrome V8引擎Sentinel Value安全风险深度剖析
深入探讨Chrome V8引擎中Sentinel Value的安全影响
Sentinel value是算法中的一种特殊值,常用于循环或递归算法的终止条件。Chrome源码中存在多种Sentinel value。之前有研究表明,通过泄露TheHole对象可以实现Chrome沙箱内任意代码执行。谷歌团队随后对相关漏洞进行了修复。
然而,V8中还存在其他不应泄露到JavaScript中的原生对象。本文将讨论Uninitialized Oddball对象,这种绕过方法最早出现在Issue1352549中。值得注意的是,该方法目前仍可用于最新版V8,尚未被修复。
这种方法具有一定的通用性:
Issue1216437(CVE-2021-30551)中首次给出了泄露internal uninitialized oddball的poc。
Issue1314616(CVE-2022-1486)中也直接泄露了UninitializedOddball。
Issue1352549(NoCVE)的影响值得关注。
这些案例表明,我们有必要重新审视可能受PatchGap影响的软件。目前Skype仍未修复该漏洞。
V8中的大部分原生对象定义在v8/src/roots/roots.h文件中,它们在内存中相邻排列。一旦这些不应泄露的原生对象被泄露到JavaScript中,就可能实现沙箱内任意代码执行。
为验证该方法,我们可以修改V8的native函数,将Uninitialized Oddball泄露到JavaScript中。具体可以修改%TheHole()函数中相对isolate的偏移,使其返回Uninitialized Oddball。
利用这种方法可以绕过HardenType保护,实现相对任意读写。分析优化后的JavaScript代码可以发现,在检查obj.prop时没有验证以obj.prop为key的Value,直接按JavaScript语义计算偏移并获取数组值,从而造成类型混淆。
由于uninitialized_oddball在V8内存中排序靠前且更原始,比TheHole对象更容易伪造。在TheHole相关缓解被修复后,这种方法成为绕过的首选。
建议在优化后的函数返回数组元素时,增加对数组map的检查,避免直接计算偏移返回数值。
值得注意的是,Skype目前仍未修复该漏洞。在x86系统上,由于没有地址压缩,任意读写是相对整个进程的。虽然Skype开启了ASLR,但由于文件较大,黑客只需对固定地址读写,就有很大概率读写到Skype文件内容。这大大降低了完成完整利用链的难度。
这次PatchGap不仅涉及Issue1352549,新的绕过方法的公开也大幅降低了Issue1314616和Issue1216437等漏洞的利用难度。黑客几乎不需要额外研究就可以完整利用之前任何泄露uninitialized_oddball的漏洞。
V8中还存在其他多种Sentinel value,它们也可能存在类似安全隐患。建议在fuzz测试中考虑将%TheHole/uninitialized_Oddball等Sentinel value作为变量加入,以发现其他潜在的利用原语。
无论这类问题是否被正式视为安全问题,它们都会大大缩短黑客实现完整利用的周期。我们需要持续关注和研究这一领域,以提高Chrome等软件的安全性。