CVE-2026-115893: Wasmtime: Cranelift backend on aarch64 can jump to incorrect target on large Wasm `br_table` instruction

Published Oct 23, 2026
·
Updated

Summary

When running with the Cranelift compiler backend on an aarch64 target, Wasmtime can compile a Wasm module with more than ~256k targets on one brtable instruction in a way that results in an incorrect conditional branch target. This conditional branch could then jump to arbitrary other code (at an user-controlled offset), leading to arbitrary sandbox escapes.

Impact

Any Wasmtime engine running on aarch64 with default settings can be forced to jump to arbitrary code by a user-controlled Wasm module. All versions of Wasmtime/Cranelift that support aarch64, since the initial release of that support in 2020 (before Wasmtime v1.0), are affected.

Patches

Wasmtime v36.0.19, v48.0.7, and v49.0.4 have been released which all fix this issue.

Other sources

Wasmtime is a runtime for WebAssembly. Prior to 36.0.19, 48.0.7, and 49.0.4, the Cranelift compiler backend on aarch64 can compile a Wasm brtable instruction with more than approximately 256,000 targets so that it has an incorrect conditional branch target. The branch can then jump to arbitrary other code at a user-controlled offset, allowing a user-controlled Wasm module to escape the sandbox on aarch64 engines using the default Cranelift backend. This issue is fixed in versions 36.0.19, 48.0.7, and 49.0.4.

— Ubuntu

Wasmtime: Cranelift backend on aarch64 can jump to incorrect target on large Wasm brtable instruction

— Microsoft

Affected Software

10 affected componentsFixes available
Bytecode Alliance Wasmtime<36.0.19, <48.0.7, <49.0.4
rust/wasmtime>=49.0.0<49.0.4
49.0.4
rust/wasmtime>=37.0.0<48.0.7
48.0.7
rust/wasmtime<36.0.19
36.0.19
ubuntu/rust-wasmtime*
ubuntu/rust-wasmtime*
ubuntu/rust-wasmtime*
debian/rust-wasmtime*
debian/rust-wasmtime<36.0.20+dfsg-1
36.0.20+dfsg-1
debian/rust-wasmtime<=26.0.1+dfsg-3
36.0.20+dfsg-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade rust/wasmtime to a version that resolves this vulnerability.

    Fixed in 49.0.4
  2. Upgrade

    Upgrade rust/wasmtime to a version that resolves this vulnerability.

    Fixed in 48.0.7
  3. Upgrade

    Upgrade rust/wasmtime to a version that resolves this vulnerability.

    Fixed in 36.0.19
  4. Upgrade

    Upgrade debian/rust-wasmtime to a version that resolves this vulnerability.

    Fixed in 36.0.20+dfsg-1
  5. Upgrade

    Upgrade Wasmtime to a version that resolves this vulnerability.

    Fixed in 49.0.4

Event History

Oct 23, 2026
CVE Published
via Ubuntu·12:00 AM
Data Sourced
via Ubuntu·12:00 AM
RemedyDescriptionSeverityAffected Software
CVE Published
via MITRE·09:29 PM
Data Sourced
via MITRE·09:29 PM
DescriptionSeverityWeakness
Data Sourced
via OSV·10:16 PM
Affected Software
Data Sourced
via NVD·10:16 PM
DescriptionSeverityWeakness
Oct 27, 2026
Exploit Published
via GitHub·09:14 AM
Oct 28, 2026
Advisory Published
via GitHub·09:14 PM
Data Sourced
via GitHub·09:14 PM
DescriptionSeverityWeaknessAffected Software
Oct 29, 2026
Data Sourced
via Microsoft·08:13 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed?

Affected deployments are Wasmtime engines running on aarch64 that use the default Cranelift backend and execute user-controlled WebAssembly modules. The issue applies to versions before 36.0.19, 48.0.7, and 49.0.4.

2

What must an attacker provide to exploit this issue?

An attacker needs the ability to run a user-controlled Wasm module containing a br_table instruction with more than approximately 256,000 targets. No user interaction is required, but the attacker must have the privileges needed to submit or execute that module.

3

Is the default configuration affected?

Yes. The vulnerability affects aarch64 engines using Wasmtime's default Cranelift compiler backend.

4

What is the impact of successful exploitation?

The incorrectly compiled conditional branch can jump to arbitrary other code at a user-controlled offset. This can allow the user-controlled Wasm module to escape the Wasmtime sandbox.

5

Which versions contain the fix?

Upgrade to Wasmtime 36.0.19, 48.0.7, or 49.0.4, depending on the release line in use.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203