Wasmtime has host data leakage with 64-bit tables and Winch
Low severity
GitHub Reviewed
Published
Apr 9, 2026
in
bytecodealliance/wasmtime
•
Updated Apr 10, 2026
Package
Affected versions
>= 25.0.0, < 36.0.7
>= 37.0.0, < 42.0.2
= 43.0.0
Patched versions
36.0.7
42.0.2
43.0.1
Description
Published by the National Vulnerability Database
Apr 9, 2026
Published to the GitHub Advisory Database
Apr 9, 2026
Reviewed
Apr 9, 2026
Last updated
Apr 10, 2026
Impact
Wasmtime's Winch compiler contains a bug where a 64-bit table, part of the memory64 proposal of WebAssembly, incorrectly translated the
table.sizeinstruction. This bug could lead to disclosing data on the host's stack to WebAssembly guests. The host's stack can possibly contain sensitive data related to other host-originating operations which is not intended to be disclosed to guests.This bug specifically arose from a mistake where the return value of
table.sizewas statically typed as a 32-bit integer, as opposed to consulting the table's index type to see how large the returned register could be. When combined with details about Wnich's ABI, such as multi-value returns, this can be combined to read stack data from the host, within a guest. This information disclosure should not be possible in WebAssembly, violates spec semantics, and is a vulnerability in Wasmtime.Patches
Wasmtime 36.0.7, 42.0.2, and 43.0.1 have been issued to fix this bug. Users are recommended to update to these patched versions of Wasmtime.
Workarounds
Users of Cranelift are not affected by this issue, but users of Winch have no workarounds other than disabling the
Config::wasm_memory64proposal.References