Description
Wasmtime is a runtime for WebAssembly. From 25.0.0 to before 36.0.7, 42.0.2, and 43.0.1, Wasmtime with its Winch (baseline) non-default compiler backend may allow properly constructed guest Wasm to access host memory outside of its linear-memory sandbox. This vulnerability requires use of the Winch compiler (-Ccompiler=winch). By default, Wasmtime uses its Cranelift backend, not Winch. With Winch, the same incorrect assumption is present in theory on both aarch64 and x86-64. The aarch64 case has an observed-working proof of concept, while the x86-64 case is theoretical and may not be reachable in practice. This Winch compiler bug can allow the Wasm guest to access memory before or after the linear-memory region, independently of whether pre- or post-guard regions are configured. The accessible range in the initial bug proof-of-concept is up to 32KiB before the start of memory, or ~4GiB after the start of memory, independently of the size of pre- or post-guard regions or the use of explicit or guard-region-based bounds checking. However, the underlying bug assumes a 32-bit memory offset stored in a 64-bit register has its upper bits cleared when it may not, and so closely related variants of the initial proof-of-concept may be able to access truly arbitrary memory in-process. This could result in a host process segmentation fault (DoS), an arbitrary data leak from the host process, or with a write, potentially an arbitrary RCE. This vulnerability is fixed in 36.0.7, 42.0.2, and 43.0.1.
Published: 2026-04-09
Score: 9 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

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.

Generated by OpenCVE AI on April 10, 2026 at 01:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Wasmtime to 36.0.7, 42.0.2, or 43.0.1 to receive the patch
  • If an update is not possible at this time, do not use the Winch compiler backend; compile with the default Cranelift compiler or another supported backend

Generated by OpenCVE AI on April 10, 2026 at 01:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-xx5w-cvp6-jv83 Wasmtime with Winch compiler backend on aarch64 may allow a sandbox-escaping memory access
History

Fri, 10 Apr 2026 15:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 10 Apr 2026 09:00:00 +0000

Type Values Removed Values Added
First Time appeared Bytecodealliance
Bytecodealliance wasmtime
Vendors & Products Bytecodealliance
Bytecodealliance wasmtime

Fri, 10 Apr 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-681
References
Metrics cvssV3_1

{'score': 8.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H'}


Thu, 09 Apr 2026 19:00:00 +0000

Type Values Removed Values Added
Description Wasmtime is a runtime for WebAssembly. From 25.0.0 to before 36.0.7, 42.0.2, and 43.0.1, Wasmtime with its Winch (baseline) non-default compiler backend may allow properly constructed guest Wasm to access host memory outside of its linear-memory sandbox. This vulnerability requires use of the Winch compiler (-Ccompiler=winch). By default, Wasmtime uses its Cranelift backend, not Winch. With Winch, the same incorrect assumption is present in theory on both aarch64 and x86-64. The aarch64 case has an observed-working proof of concept, while the x86-64 case is theoretical and may not be reachable in practice. This Winch compiler bug can allow the Wasm guest to access memory before or after the linear-memory region, independently of whether pre- or post-guard regions are configured. The accessible range in the initial bug proof-of-concept is up to 32KiB before the start of memory, or ~4GiB after the start of memory, independently of the size of pre- or post-guard regions or the use of explicit or guard-region-based bounds checking. However, the underlying bug assumes a 32-bit memory offset stored in a 64-bit register has its upper bits cleared when it may not, and so closely related variants of the initial proof-of-concept may be able to access truly arbitrary memory in-process. This could result in a host process segmentation fault (DoS), an arbitrary data leak from the host process, or with a write, potentially an arbitrary RCE. This vulnerability is fixed in 36.0.7, 42.0.2, and 43.0.1.
Title Wasmtime with Winch compiler backend on aarch64 may allow a sandbox-escaping memory access
Weaknesses CWE-125
CWE-787
References
Metrics cvssV4_0

{'score': 9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}


Subscriptions

Bytecodealliance Wasmtime
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-10T14:12:55.374Z

Reserved: 2026-03-31T19:38:31.617Z

Link: CVE-2026-34987

cve-icon Vulnrichment

Updated: 2026-04-10T14:12:41.461Z

cve-icon NVD

Status : Received

Published: 2026-04-09T19:16:25.000

Modified: 2026-04-09T19:16:25.000

Link: CVE-2026-34987

cve-icon Redhat

Severity :

Publid Date: 2026-04-09T18:48:33Z

Links: CVE-2026-34987 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-04-10T09:29:54Z

Weaknesses