IPBUF安全漏洞报告
English
CVE-2026-34945 CVSS 6.5 中危

CVE-2026-34945 Wasmtime Winch编译器信息泄露漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-34945
漏洞类型
信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Wasmtime

相关标签

信息泄露WebAssemblyWasmtimeWinchMemory64CVE-2026-34945

漏洞概述

Wasmtime的Winch编译器在处理64位表(memory64提案)的`table.size`指令时存在类型推断错误。此错误导致WebAssembly访客可能读取主机栈上的敏感数据,引发严重的信息泄露风险,影响主机环境的安全性。

技术细节

该漏洞源于Wasmtime的Winch编译器在实现WebAssembly memory64提案时的逻辑缺陷。编译器在处理`table.size`指令时,错误地将返回值静态类型化为32位整数,而没有动态检查表的索引类型。在Winch的ABI(应用程序二进制接口)机制下,特别是涉及多值返回时,这种类型不匹配导致高32位寄存器未被正确清零,从而泄露了主机栈上的残留数据。攻击者可以通过构造特定的WebAssembly模块,利用此漏洞读取宿主进程栈中的敏感信息,如指针或其他操作数据。

攻击链分析

STEP 1
步骤1
攻击者编写包含memory64特性并调用table.size指令的恶意WebAssembly代码。
STEP 2
步骤2
将恶意Wasm模块部署或上传到使用受影响版本Wasmtime的目标服务器。
STEP 3
步骤3
Wasmtime运行时使用Winch编译器编译并执行该模块。
STEP 4
步骤4
由于类型转换错误,主机栈数据泄露给WebAssembly访客,攻击者获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
(module ;; PoC for Wasmtime table.size information disclosure ;; This module targets the memory64 proposal where the bug exists (memory 1 64) ;; Define a table to trigger the vulnerable code path (table 1 10 funcref) ;; Function that attempts to read table size as a 64-bit value ;; In vulnerable versions, the upper 32 bits may contain stack data (func (export "leak_stack") (result i64) table.size 0 ) )

影响范围

Wasmtime >= 25.0.0, < 36.0.7
Wasmtime >= 42.0.0, < 42.0.2
Wasmtime >= 43.0.0, < 43.0.1

防御指南

临时缓解措施
如果无法立即升级,建议限制不受信任的WebAssembly代码的执行权限,或暂时禁用Winch编译器改用其他编译后端(如Cranelift),直到应用安全补丁。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表