Summary
## 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 `br_table` 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.
Remediation
References
- Advisoryhttps://github.com/advisories/GHSA-mghf-wjfp-p5xm
- Referencehttps://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-mghf-wjfp-p5xm
- Referencehttps://nvd.nist.gov/vuln/detail/CVE-2026-115893
- Referencehttps://github.com/bytecodealliance/wasmtime/pull/14818
- Referencehttps://github.com/bytecodealliance/wasmtime/pull/14819
- Referencehttps://github.com/bytecodealliance/wasmtime/pull/14820
- Referencehttps://github.com/bytecodealliance/wasmtime/pull/14826
- Referencehttps://github.com/bytecodealliance/wasmtime/commit/222ff3a65dab9aa7011f8c246937751a0bac5abd
- Referencehttps://github.com/bytecodealliance/wasmtime/commit/994549891c8a706cb4f2809f9d17b9f67b31e618
- Referencehttps://github.com/bytecodealliance/wasmtime/commit/e61df1b454be9313d61a5f8de07722a421139bbe
- Referencehttps://github.com/bytecodealliance/wasmtime/commit/f517bd6e890c7c1291ab9fe05d8cc0c9f11e56aa
- Referencehttps://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.19