文章总结: CVE-2026-6307是V8引擎中JS到Wasm类型混淆漏洞,影响Chrome146版本。攻击者可利用该漏洞实现远程代码执行,通过绕过ASLR和沙箱限制弹出计算器。漏洞源于JSToWasmFrameStateFunctionInfo的相等运算符省略了Wasm签名比较,导致CSE/GVN合并帧状态。建议升级至147.0.7727.101修复版本。 综合评分: 88 文章分类: 漏洞分析,恶意软件,漏洞攻击,威胁情报
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倍
超清 流畅
继续观看
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 上的远程代码执行漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论