CVE-2026-6307:V8JS到Wasm的类型混淆→Chrome146上的远程代码执行漏洞

admin 2026-07-05 06:33:58 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: CVE-2026-6307是V8引擎中JS到Wasm类型混淆漏洞,影响Chrome146版本。攻击者可利用该漏洞实现远程代码执行,通过绕过ASLR和沙箱限制弹出计算器。漏洞源于JSToWasmFrameStateFunctionInfo的相等运算符省略了Wasm签名比较,导致CSE/GVN合并帧状态。建议升级至147.0.7727.101修复版本。 综合评分: 88 文章分类: 漏洞分析,恶意软件,漏洞攻击,威胁情报


cover_image

CVE-2026-6307:V8 JS 到 Wasm 的类型混淆 → Chrome 146 上的远程代码执行漏洞

Ots安全

2026年7月2日 12:41 广东

在小说阅读器读本章

去阅读

威胁简报

恶意软件

漏洞攻击

Nebula描述的 V8 JS 到 Wasm 反优化类型混淆的本地重现和武器化,xcalc从 Chrome 渲染器中弹出进行测试(146.0.7680.165 该错误已在 中修复147.0.7727.101)。

所有有效载荷都是良性的(一个计算器exit(0x42))jmp $。所有操作都在本地实验室中故意使用过时的浏览器上进行,请勿将其指向任何其他人。

演示

已关注

关注

重播 分享 赞

关闭

观看更多

更多

退出全屏

切换到竖屏全屏退出全屏

Ots安全已关注

分享视频

,时长00:11

0/0

00:00/00:11

切换到横屏模式

继续播放

[ ]

进度条,百分之0

播放

00:00

/

00:11

00:11

倍速

全屏

倍速播放中

0.5倍 0.75倍 1.0倍 1.5倍 2.0倍

超清 流畅

 您的浏览器不支持 video 标签

继续观看

CVE-2026-6307:V8 JS 到 Wasm 的类型混淆 → Chrome 146 上的远程代码执行漏洞

观看更多

转载

,

CVE-2026-6307:V8 JS 到 Wasm 的类型混淆 → Chrome 146 上的远程代码执行漏洞

Ots安全已关注

分享点赞在看

已同步到看一看写下你的评论

视频详情

漏洞

JSToWasmFrameStateFunctionInfo’s 相等运算符省略了 Wasm 签名比较,因此 CSE/GVN 合并了仅签名不同的帧状态。然后,惰性 deopt 将 Wasm 实例化为i64带标签的寄存器externref(反之亦然),从而得到一个完整的 64 位寄存器addrof,fakeobj其指针不会被笼式压缩(Wasm 引用使用带标签的寄存器表示,通过返回kReturnRegister0)。

以下所有内容均已通过实时验证146.0.7680.165。每次加载的数据是多次运行的命中率(此错误与垃圾回收机制相关;每次构建失败时页面都会重新加载)。所有运行均未出现误报。

无标志原语——否–allow-natives-syntax

大多数 V8 漏洞概念验证 (PoC) 都强制使用%OptimizeFunctionOnNextCall一个仅供测试的内部函数进行优化,该函数隐藏在实际受害者无法启用的机制之后。这些 PoC无需任何标志即可–allow-natives-syntax触发漏洞,通过调整预热反馈,使去优化混淆自然触发。所有地址都在运行时泄露——没有任何硬编码。请在无头模式下运行这些 PoC,且不设置任何标志。

可见 RCE — 无 ASLR 实验室构建

rce-no-aslr/g将其执行到代码执行阶段 :一个优化的 JS 函数execve将 shellcode 作为 JIT 双字面量(movabs常量,每个都以 结尾 eb rel8以链接下一个)进行处理,混乱的存储将 修补nop; jmp到g’s 代码中,调用g()slides RIP 进入 shellcode。

此构建版本使用–allow-natives-syntax(%Optimize固定gJIT 有效载荷,因此 deopt-GC 无法将其刷新)和–no-memory-protection-keys(以便混乱的存储可以修补 JIT 页面——否则 V8 的 PKU 会将其标记为只读)。ASLR 已关闭(randomize_va_space=0),因此地址是确定性的(A_MAP = 0x5555bbc0128a)。渲染器也需要–disable-seccomp-filter-sandbox –no-zygote,因为 seccomp 会阻塞 shellcode 的execve。

运行它

原生 x86_64 Linux 系统,ASLR 关闭,Chrome 146 开启PATH,X 显示器开启:0(Xvfb 或真正的 X)。rce-no-aslr/run.sh设置所有标志并通过 http 提供服务。

cd rce-no-aslr
./run.sh calc # pop a real xcalc over http://127.0.0.1:8080, on :0
./run.sh exit          # strace-confirms the renderer's exit(66)
./run.sh jmp # gdb-confirms RIP inside the injected shellcode
./demo.sh calc # clean-slate + auto-retry, full-size headful browser (for recording)
./demo.sh msgbox # same, but the pop is a branded "0xSha :: pwned" box

pocmode.sh calc|msgbox切换 RCEexecve(“/usr/bin/xcalc”)启动的内容(真正的计算器还是品牌包装盒)。无需标志的基本操作只需要一个浏览器:

chrome --headless=new --no-sandbox http://127.0.0.1:8080/flag-free/01-primitives-flagfree.html

项目地址:

https://github.com/0xsha/CVE-2026-6307

END

公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址或参考地址

排版 编辑 | Ots 小安

采集 翻译 | Ots Ai牛马

公众号 | AnQuan7 (Ots安全)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Ots安全 《CVE-2026-6307:V8 JS 到 Wasm 的类型混淆 → Chrome 146 上的远程代码执行漏洞》

评论:0   参与:  0