Chrome V8引擎新漏洞:泄露Uninitialized Oddball绕过沙箱

robot
摘要生成中

通过泄露Sentinel Value绕过Chrome V8 HardenProtect的内幕

前言

Sentinel value是算法中的一种特殊值,常用于循环或递归算法中作为终止条件。Chrome源码中广泛使用了这类值。近期安全研究人员发现,通过泄露TheHole对象可以实现Chrome沙箱内的任意代码执行。谷歌团队随后快速修复了这两个在野漏洞。

然而,V8中还存在其他不应泄露到JavaScript中的原生对象。本文将讨论一个新的对象:Uninitialized Oddball。这种绕过方法最早出现在Project0成员提交的Issue中,目前仍可在最新版V8中使用。

值得注意的是,这种方法具有较强的通用性:

  1. 在CVE-2021-30551中,首个POC就是泄露internal uninitialized oddball。

  2. CVE-2022-1486的POC也直接泄露了UninitializedOddball。

  3. 一个未分配CVE的Issue同样使用了这种方法。

这些案例足以说明该问题的重要性,值得重新审视可能受影响的软件。

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

V8中的Sentinel Value

V8的大多数原生对象定义在v8/src/roots/roots.h文件中,它们在内存中依次相邻排布。一旦这些不应泄露的原生对象被泄露到JavaScript中,就可能导致沙箱内任意代码执行。

我们可以通过修改V8的native函数,将Uninitialized Oddball泄露到JavaScript中。具体方法是修改%TheHole()函数中相对isolate的偏移,使其返回Uninitialized Oddball。

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

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

绕过HardenType

利用Uninitialized Oddball可以实现相对任意读写。关键在于,优化后的read函数只检查了obj的prop属性,但没有检查obj.prop作为key的value。这导致在计算时发生类型混淆,从而实现任意读。

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

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

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

在x86架构下,由于没有地址压缩,任意读写是相对于整个进程的。虽然缺少了地址压缩带来的便利,但由于某些大型软件文件较大,仍可以较高概率读写到目标内容。

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

PatchGap警告

这次PatchGap不仅涉及Issue1352549,还包括类似Issue1314616和Issue1216437在内的多个漏洞。新的绕过方法公开后,这些漏洞的利用难度大幅降低。黑客几乎不需要额外研究就可以完成完整利用链。

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

总结

V8中还有许多其他Sentinel value,它们也可能存在类似问题。这给我们一些启示:

  1. 其他uninitialized_Oddball泄露是否也可实现V8 RCE?

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

  3. Fuzzer测试中是否应将Sentinel value作为变量加入?

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

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

SENC1.44%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 6
  • 转发
  • 分享
评论
0/400
智能合约试错员vip
· 08-15 05:19
老漏洞新问题又来了
回复0
区块链打工人vip
· 08-13 17:55
v8这个漏洞很严重啊
回复0
SocialFiQueenvip
· 08-12 12:23
严重问题需关注解决
回复0
椰子丝半仙vip
· 08-12 12:15
绕过漏洞还没修复啊
回复0
链游韭菜收割机vip
· 08-12 12:12
哇 V8又出洞了
回复0
币圈资深幸存者vip
· 08-12 12:11
又见沙盒被绕过
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)