CVE-2025-64345CVE-2025-64345是Wasmtime WebAssembly运行时中的一个类型安全漏洞。Wasmtime是一个用于执行WebAssembly的运行时环境,被广泛应用于云原生应用、边缘计算和插件系统中。该漏洞存在于Wasmtime的Rust嵌入API中,攻击者可以通过创建WebAssembly共享线性内存,并利用不健全的类型系统将其作为提供安全访问的类型来访问线性内存内容。由于共享线性内存可以被并行修改,这导致了主机端(Rust端)的数据竞争问题。攻击者需要本地访问权限、高权限认证和用户交互才能利用此漏洞。虽然CVSS评分为1.8(低危),但在多线程WebAssembly应用场景中可能导致数据损坏或不可预测行为。
漏洞根源在于Wasmtime的Rust嵌入API对共享线性内存的类型处理不当。在Wasm中,共享线性内存(Shared Linear Memory)允许WebAssembly模块之间共享数据,但同时也允许并行修改。在修复前的版本中,Memory::new API可以创建共享内存并将其视图化为提供安全访问的类型,这违反了Rust的借用检查器规则。对于共享内存,由于多个执行上下文可能同时修改内存内容,将其视为提供独占安全访问的类型会导致未定义行为。具体来说,当一个WebAssembly模块使用共享内存时,攻击者可以通过精心构造的Wasm代码触发数据竞争条件,导致主机端Rust代码读取到不一致的内存状态。该漏洞影响所有在多线程场景下使用Wasmtime嵌入API的应用。