CVE-2026-34988Wasmtime运行时的池化分配器存在内存泄露漏洞。在特定配置下,重用线性内存时未正确重置虚拟内存权限,导致后续实例可读取前一个实例的内存数据,破坏了WebAssembly的沙箱隔离机制。
该漏洞源于Wasmtime池化分配器实现中的逻辑错误。用于判断是否重置虚拟内存权限的运行时谓词与编译时谓词存在差异,导致运行时错误地推断出无需重置权限,而编译时却假设内存保护是有效的。要利用此漏洞,必须同时满足多个特定配置条件:系统必须使用池化分配器,Config::memory_guard_size必须被设置为0,Config::memory_reservation必须小于4GiB,且max_memory_size必须与memory_reservation值相同。当这些条件满足时,线性内存被重用时,上一轮迭代的VM权限不会被重置。编译后的WebAssembly代码通常假设越界加载会触发段错误从而保护内存,但在这种情况下,段错误不会发生。这使得恶意代码可以读取之前实例映射并释放的线性内存内容,造成敏感数据泄露,严重破坏了WebAssembly实例间的隔离性和沙箱安全性。