Wasmtime: Bit-packing in Cranelift compiler causes silent overflow and miscompilation
Critical severity
GitHub Reviewed
Published
Oct 19, 2026
in
bytecodealliance/wasmtime
•
Updated Oct 23, 2026
Package
Affected versions
< 36.0.19
>= 37.0.0, < 43.0.0
Patched versions
36.0.19
43.0.0
Description
Published to the GitHub Advisory Database
Oct 23, 2026
Reviewed
Oct 23, 2026
Last updated
Oct 23, 2026
Summary
In Wasmtime prior to v43, the Cranelift compiler backend bit-packs its SSA value indices in a way that can result in silent overflow in release builds, and result in incorrect value references in the IR resulting in arbitrary miscompilation. A very large Wasm function body, or one that is specially crafted to use many SSA values, can use this to force type-confusion or other arbitrary side-effects and escape the sandbox.
Cranelift was changed in Wasmtime v43 to use a full
u32index, with checks if that limit is exceeded, and so is no longer susceptible to this bug.Impact
A Wasmtime engine with default settings (using the Cranelift backend) on any architecture/platform could experience a sandbox escape from a specially-crafted Wasm module.
Patches
Wasmtime v36.0.19 has been released which fixes this issue.
References