LiveActive security incident?Get immediate response
CVE Record

CVE-2026-34971: Wasmtime miscompiled guest heap access enables sandbox escape on aarch64 Cranelift

Wasmtime is a runtime for WebAssembly. From 32.0.0 to before 36.0.7, 42.0.2, and 43.0.1, Wasmtime's Cranelift compilation backend contains a bug on aarch64 when performing a certain shape of heap accesses which means that the wrong address is accessed. When combined with explicit bounds checks a guest WebAssembly module this can create a situation where there are two diverging computations for the same address: one for the address to bounds-check and one for the address to load. This difference in address being operated on means that a guest module can pass a bounds check but then load a different address. Combined together this enables an arbitrary read/write primitive for guest WebAssembly when accesssing host memory. This is a sandbox escape as guests are able to read/write arbitrary host memory. This vulnerability has a few ingredients, all of which must be met, for this situation to occur and bypass the sandbox restrictions. This miscompiled shape of load only occurs on 64-bit WebAssembly linear memories, or when Config::wasm_memory64 is enabled. 32-bit WebAssembly is not affected. Spectre mitigations or signals-based-traps must be disabled. When spectre mitigations are enabled then the offending shape of load is not generated. When signals-based-traps are disabled then spectre mitigations are also automatically disabled. The specific bug in Cranelift is a miscompile of a load of the shape load(iadd(base, ishl(index, amt))) where amt is a constant. The amt value is masked incorrectly to test if it's a certain value, and this incorrect mask means that Cranelift can pattern-match this lowering rule during instruction selection erroneously, diverging from WebAssembly's and Cranelift's semantics. This incorrect lowering would, for example, load an address much further away than intended as the correct address's computation would have wrapped around to a smaller value insetad. This vulnerability is fixed in 36.0.7, 42.0.2, and 43.0.1.

CriticalCVSS 9Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

Wasmtime on ARM64 can miscompile some WebAssembly memory accesses, letting a guest pass a bounds check but read or write host memory. This is a sandbox escape risk for services running untrusted WebAssembly under affected versions and specific runtime settings.

Executive priority

Prioritize quickly if Wasmtime isolates untrusted WebAssembly in production, especially on ARM64 infrastructure. The business risk is cross-boundary memory access from guest code into host memory, which can undermine tenant isolation and sensitive data protections.

Technical view

The issue is in Wasmtime Cranelift on aarch64 for certain 64-bit memory access patterns. With Memory64 or 64-bit linear memories, and Spectre mitigations or signal-based traps disabled, address calculation can diverge between bounds checking and loading, enabling arbitrary guest read/write of host memory.

Likely exposure

Exposure is most likely in ARM64/aarch64 environments using affected Wasmtime versions to run untrusted or tenant-supplied WebAssembly with wasm_memory64 or 64-bit linear memory. 32-bit WebAssembly is stated as not affected.

Exploitation context

The bundle does not cite active exploitation, and KEV is false. Exploitation requires prerequisites: affected Wasmtime, aarch64 Cranelift, 64-bit memory behavior, and disabled Spectre mitigations or signal-based traps. A malicious or compromised guest module would be the likely threat path.

Researcher notes

Primary evidence names Cranelift instruction selection miscompilation for load(iadd(base, ishl(index, amt))). The source bundle has a version inconsistency: narrative says fixed in 43.0.1, while the affected range lists 43.0.0 to before 44.0.1. Validate against vendor advisory before final scoping.

Mitigation direction

  • Upgrade Wasmtime to vendor-fixed releases: 36.0.7, 42.0.2, or 43.0.1 where applicable.
  • Check Bytecode Alliance guidance for the correct fixed branch for your deployment.
  • Keep Spectre mitigations and signal-based traps enabled unless vendor guidance says otherwise.
  • Avoid running untrusted WebAssembly with Memory64 on affected ARM64 hosts until remediated.
  • Review Red Hat advisories if Wasmtime is consumed through Red Hat packages.

Validation and detection

  • Inventory Wasmtime versions across ARM64/aarch64 hosts and containers.
  • Identify workloads running untrusted or tenant-supplied WebAssembly modules.
  • Check whether wasm_memory64 or 64-bit linear memories are enabled.
  • Confirm Spectre mitigations and signal-based traps are not disabled.
  • Map package provenance against Bytecode Alliance and Red Hat advisory status.
Prepared
Confidence
high
Sources
6

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-125: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cwe · low confidence lookup

CWE-787: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Privilege behavior lookup

The CVE wording references privilege impact, so privilege escalation and authorization behavior review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-34971 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9 (4.0)
Known Exploited
No
Published

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

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

3CVSS vectors
5Timeline events
2ADP providers
5Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total

CVSS vector scores

3 official scores

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9CVSS 4.0CriticalCVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H——GitHub_M
8.5CVSS 3.1HighCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H1.86redhat-SADP
7.8CVSS 3.1HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H1.16CISA-ADP

Vulnerability scoring details

Base CVSS 4.0 score

9Critical
CVSS 4.0 vector shape for CVE-2026-34971Attack VectorAttack ComplexityAttack RequirementsPrivileges RequiredUser InteractionVS ConfidentialityVS IntegrityVS AvailabilitySS ConfidentialitySS IntegritySS Availability

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

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Attack Requirements
NonePresent
Privileges Required
NoneLowHigh
User Interaction
NonePassiveActive
VS Confidentiality
HighLowNone
VS Integrity
HighLowNone
VS Availability
HighLowNone
SS Confidentiality
HighLowNone
SS Integrity
HighLowNone
SS Availability
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. ADP timelineredhat-SADP

    Made public.

  3. CVE publishedCVE Program

    The CVE record was published.

  4. ADP timelineredhat-SADP

    Reported to Red Hat.

  5. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
cvssV3_1other:ssvc
redhat-SADPwasmtime: cranelift: Wasmtime: Sandbox escape due to miscompiled heap access on aarch64
other:Red Hat severity ratingcvssV3_1
  • 2026-04-09T19:02:26.575Z: Reported to Red Hat.
  • 2026-04-09T18:45:44.819Z: Made public.

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
bytecodealliancewasmtime>= 32.0.0, < 36.0.7, >= 37.0.0, < 42.0.2, >= 43.0.0, < 44.0.1Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-125 · source CWE mapping

Out-of-bounds Read

Out-of-bounds Read represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.

CWE-787 · source CWE mapping

Out-of-bounds Write

Out-of-bounds Write represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.