Chrome V8引擎Sentinel Value泄露导致沙箱逃逸风险

robot
摘要生成中

Sentinel Value泄露与Chrome V8 HardenProtect绕过

Chrome源代码中存在大量Sentinel value,这些特殊值在算法中通常用作循环或递归的终止条件。近期研究表明,某些Sentinel value的泄露可能导致Chrome沙箱内任意代码执行。

除了已知的TheHole对象外,V8中还有其他不应泄露到JavaScript环境中的原生对象。本文重点讨论Uninitialized Oddball对象,这种绕过方法目前仍可应用于最新版V8,尚未得到修复。

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

值得注意的是,这种方法具有广泛的适用性。在多个已报告的漏洞中,泄露Uninitialized Oddball都可能导致远程代码执行。这凸显了对可能受PatchGap影响的软件进行全面审核的必要性。

V8中的大多数原生对象定义在v8/src/roots/roots.h文件中,它们在内存中相邻排列。一旦这些对象被错误地暴露给JavaScript,就可能实现沙箱内任意代码执行。

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

为验证这一方法,我们可以修改V8的原生函数,使其返回Uninitialized Oddball对象。通过这种方式,我们能够在最新版V8中实现相对任意的内存读取。

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

这种绕过方法的核心在于,优化后的JavaScript函数在访问数组元素时,没有充分检查数组的类型信息,而是直接计算偏移量获取值。这导致了类型混淆,从而实现任意读取。

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

建议的修复方案是在优化后的函数返回数组元素时,增加对数组map的检查,避免直接通过偏移量计算来返回数组值。

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

此外,我们还需要关注软件供应链中可能存在的PatchGap问题。一些广泛使用的软件可能仍未修复这类漏洞,这为攻击者提供了可能的突破口。

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

总的来说,V8中存在多种Sentinel value,它们的泄露可能导致安全问题。未来的研究方向可能包括:探索其他Uninitialized Oddball泄露的影响、评估将Sentinel value作为变量引入模糊测试的可行性,以及更全面地审视相关安全问题。无论这类问题是否被正式列为安全漏洞,它们都可能显著缩短攻击者实现完整利用的时间。

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

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

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

SENC-0.1%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 转发
  • 分享
评论
0/400
LiquidatedDreamsvip
· 17小时前
又一波洞...摆烂的Chrome 怎么就不修复呢
回复0
Gas_Wastervip
· 17小时前
盒子这么多漏洞 小丑了家人们
回复0
GasOptimizervip
· 17小时前
递归漏洞占了安全事故89.4%的概率
回复0
落叶不归根vip
· 17小时前
漏洞这么大 浏览器也不安全了啊
回复0
GateUser-5854de8bvip
· 17小时前
啧 v8又出漏洞了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)