Impact
Wasmtime is a WebAssembly runtime that, when built with the alternate Winch compiler backend on aarch64, allows a malicious Wasm guest to read or write memory outside of its intended sandbox. The bug exploits an incorrect assumption that a 32‑bit memory offset cleared in a 64‑bit register always has its high bits zero, permitting offsets that point 32 KiB before the sandbox or roughly 4 GiB beyond it. Depending on whether the attacker reads or writes, the vulnerability can cause a host process crash (DoS), leak host memory contents, or, with write access, lead to arbitrary code execution inside the host process.
Affected Systems
The flaw affects Bytecode Alliance’s Wasmtime releases from 25.0.0 up to, but not including, 36.0.7, as well as the 42.0.2 and 43.0.1 releases. It is only present when the Winch compiler is explicitly chosen (via '-Ccompiler=winch'); the default Cranelift backend is not impacted. The vulnerability is confined to aarch64 distributions, with an x86‑64 variant that is currently theoretical and unvalidated by a proof‑of‑concept.
Risk and Exploitability
The vulnerability carries a CVSS score of 9, placing it in the Critical severity range, and while its EPSS score is not provided, the lack of a public exploit in the KEV catalog suggests the primary risk comes from targeted or opportunistic attacks against systems that expose untrusted WebAssembly. Because the exploit requires building the runtime with the Winch backend and supplying a crafted module, the vector is likely confined to environments that willingly load untrusted Wasm from external sources. Nevertheless, the high severity and potential for arbitrary code execution warrant prompt remediation.
OpenCVE Enrichment
Github GHSA