V8引擎Sentinel值泄露漏洞:Chrome沙箱逃逸新方法分析

探讨Chrome V8引擎中Sentinel Value的安全隐患

Sentinel value是算法中的一个特殊值,通常在循环或递归算法中作为终止条件存在。Chrome源码中有很多Sentinel value。近期研究表明,通过泄露特定Sentinel value对象可能导致Chrome沙箱内任意代码执行。

本文将讨论一个新的Sentinel value对象:Uninitialized Oddball。这种绕过方法最早出现在某漏洞报告中,由安全研究人员给出完整代码。值得注意的是,目前该方法仍可用于最新版V8,尚未得到修复。

该方法具有较强通用性:

  1. 在某CVE漏洞中,最初的poc就是泄露internal uninitialized oddball。

  2. 另一个CVE漏洞报告中,研究人员直接泄露UninitializedOddball,虽然当时利用链不完整,但已显示出安全隐患。

  3. 在最近的一个漏洞报告中给出了完整利用方法。

这些案例说明了该问题的普遍性和严重性。截至目前,某通讯软件尚未修复该漏洞。

Sentinel value在V8中的应用

V8源码中定义了大量原生对象,它们在内存中依次相邻排布。一旦将不应泄露的原生对象暴露给JavaScript,就可能实现沙箱内任意代码执行。

为验证该方法在最新V8中的有效性,我们可以修改V8的native函数,将Uninitialized Oddball泄露到JavaScript中。

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

绕过HardenType保护

我们可以构造代码,当某函数返回UninitializedOddball时,实现相对任意读取。分析优化后的汇编代码可以发现,函数只检查了对象的属性是否正确,但没有检查属性对应的值,直接按JavaScript语义计算偏移获取数组元素,从而造成类型混淆,实现任意读取。

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

同理,任意写入也可以通过类似方法构造。建议在优化函数返回数组元素时,增加对数组map的检查,避免直接计算偏移返回值。

安全隐患提醒

分析表明,某通讯软件目前仍未修复该漏洞。在x86系统下,由于缺少地址压缩,任意读写直接相对于整个进程。虽然开启了ASLR,但由于文件较大,仍有较大概率读写到关键内容。结合PE解析等方法,可能在短时间内完成完整利用链。

这次安全隐患不仅涉及单个漏洞,还导致了之前一些类似漏洞利用难度大幅降低。黑客几乎不需要额外研究即可实现完整利用,包括之前报告的所有类似漏洞。

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

总结

本文简要讨论了通过泄露Uninitialized Oddball实现任意读取的方法。V8中还有很多其他Sentinel value,可能存在类似安全隐患。这给我们一些启示:

  1. 其他Sentinel value泄露是否也可能导致V8沙箱逃逸?

  2. 此类问题是否应被正式视为安全漏洞?

  3. 是否有必要在fuzz测试中加入Sentinel value相关变量,以发现更多潜在问题?

无论如何,这类问题都可能大大缩短黑客实现完整利用的周期,值得高度重视。

独家揭秘通过泄露Sentinel Value绕过Chrome v8 HardenProtect

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
无情的套利机器vip
· 18小时前
谷歌咋搞的 这都能出漏洞
回复0
SelfSovereignStevevip
· 07-10 20:07
浏览器保护在哪咯
回复0
稳定币套利者vip
· 07-10 19:58
嗯,又一个漏洞,有99.8%可能在任何有意义的套利机会之前被修补...
查看原文回复0
DeFi攻略vip
· 07-10 19:45
浏览器也有空投了? 这波能薅么
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)