Skip to content
OpenAdvisories
Medium · 6.1 CVE-2026-35186 EUVD-2026-21037GHSA-f984-pcp8-v2p7RUSTSEC-2026-0094

Wasmtime has an improperly masked return value from `table.grow` with Winch compiler backend

Published Apr 9, 2026 · Updated Apr 13, 2026 · Assigned by GitHub_M

Description

Wasmtime is a runtime for WebAssembly. From 25.0.0 to before 36.0.7, 42.0.2, and 43.0.1, Wasmtime's Winch compiler backend contains a bug where translating the table.grow operator causes the result to be incorrectly typed. For 32-bit tables this means that the result of the operator, internally in Winch, is tagged as a 64-bit value instead of a 32-bit value. This invalid internal representation of Winch's compiler state compounds into further issues depending on how the value is consumed. The primary consequence of this bug is that bytes in the host's address space can be stored/read from. This is only applicable to the 16 bytes before linear memory, however, as the only significant return value of table.grow that can be misinterpreted is -1. The bytes before linear memory are, by default, unmapped memory. Wasmtime will detect this fault and abort the process, however, because wasm should not be able to access these bytes. Overall this this bug in Winch represents a DoS vector by crashing the host process, a correctness issue within Winch, and a possible leak of up to 16-bytes before linear memory. Wasmtime's default compiler is Cranelift, not Winch, and Wasmtime's default settings are to place guard pages before linear memory. This means that Wasmtime's default configuration is not affected by this issue, and when explicitly choosing Winch Wasmtime's otherwise default configuration leads to a DoS. Disabling guard pages before linear memory is required to possibly leak up to 16-bytes of host data. This vulnerability is fixed in 36.0.7, 42.0.2, and 43.0.1.

Affected products

VendorProductAffectedFixed
bytecodealliance wasmtime >= 25.0.0, < 36.0.7, >= 37.0.0, < 42.0.2, >= 43.0.0, < 44.0.1 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 rust-wasmtime 36.0.7+dfsg-1 —
Debian 13 rust-wasmtime No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 rust-wasmtime No fix yet —
Ubuntu 26.04 LTS rust-wasmtime No fix yet —
Ubuntu 25.10 rust-wasmtime No fix yet —
Ubuntu 24.04 LTS rust-wasmtime No fix yet —
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed tree-sitter 0.26.8-2.1 openSUSE-SU-2026:10715-1

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling wash No fix yet —
Wolfi rolling wasmcloud 2.0.4-r0 —
Wolfi rolling wizer 11.0.3-r10 —
Wolfi rolling yara-x 1.15.0-r2 —
Wolfi rolling zed 0.228.0-r3 —

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io wasmtime >= 25.0.0, < 36.0.7 36.0.7 GHSA-f984-pcp8-v2p7
crates.io wasmtime >= 37.0.0, < 42.0.2 42.0.2 GHSA-f984-pcp8-v2p7
crates.io wasmtime >= 43.0.0, < 43.0.1 43.0.1 GHSA-f984-pcp8-v2p7
crates.io wasmtime >= 0.0.0-0, < 36.0.7 · >= 37.0.0, < 42.0.2 · >= 43.0.0, < 43.0.1 36.0.7, 42.0.2, 43.0.1 RUSTSEC-2026-0094

Advisories 1

References