GitHub Advisoryadvisory · crates.io

GHSA-m9w2-8782-2946 Wasmtime has host data leakage with 64-bit tables and Winch

LOW Published 2026-04-09 Modified 2026-04-24 Official page ↗
Aliases
CVE-2026-34945
Ecosystem
crates.io
Packages
wasmtime
Severity
Low
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-200, CWE-681
Reviewed
2026-04-09

Affected packages

• crates.io wasmtime: >= 25.0.0, < 36.0.7 → fixed in 36.0.7 • crates.io wasmtime: >= 37.0.0, < 42.0.2 → fixed in 42.0.2 • crates.io wasmtime: >= 43.0.0, < 43.0.1 → fixed in 43.0.1

Description

Impact Wasmtime's Winch compiler contains a bug where a 64-bit table, part of the memory64 proposal of WebAssembly, incorrectly translated the `table.size` instruction. 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.size` was 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_memory64` proposal.

Related

Alias · CVE (1)

Weakness · CWE (2)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
  • CWE-681 Incorrect Conversion between Numeric Types weakness

References