CVE-2026-34983Wasmtime是一个用于WebAssembly的运行时环境。在其43.0.0版本中,克隆wasmtime::Linker组件的操作存在内存安全问题,导致释放后重用漏洞。该漏洞不可由Wasm访客程序直接控制,仅能通过宿主端特定的API调用序列触发。攻击者需先克隆Linker实例,随后丢弃原始实例,最后使用克隆实例,从而引发UAF。目前该问题已在43.0.1版本中修复。
该漏洞的根本原因在于Wasmtime 43.0.0版本中`wasmtime::Linker`的克隆实现缺乏正确的内存生命周期管理。当Linker对象被克隆时,内部状态可能保留了指向原始内存资源的指针,而未进行深拷贝或增加引用计数。利用该漏洞需要特定的执行流:首先,宿主程序创建并克隆一个Linker对象;其次,显式调用drop()丢弃原始Linker实例,导致相关的底层内存被释放;最后,当宿主程序尝试使用被克隆的Linker实例执行操作(如定义函数或实例化模块)时,由于它仍指向已释放的内存区域,触发了Use-After-Free。尽管Wasm访客程序无法直接利用此点,但恶意的宿主环境或存在逻辑缺陷的Embedder代码可利用此漏洞导致宿主进程崩溃或潜在的任意代码执行。