Wasmtime Cranelift ARM64 br_table Sandbox Escape
CVE-2026-115893 is a sandbox-escape vulnerability in Wasmtime's default Cranelift compiler backend on ARM64 (aarch64). When compiling a WebAssembly br_table instruction with more than approximately 256,000 targets, Cranelift can place the default target beyond the approximately 1 MiB reach of its conditional branch. The branch offset silently wraps, generating an incorrect destination and allowing an attacker-controlled module to redirect execution to arbitrary code at a user-controlled offset. Affected releases include versions before 36.0.19, versions 37.0.0 through 47.x, versions 48.0.0 through 48.0.6, and versions 49.0.0 through 49.0.3.
What it means and what to do now: patch path, interim mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
Successful exploitation can break WebAssembly sandbox isolation and execute code outside the module's intended environment. This can compromise the confidentiality, integrity, and availability of the embedding host process and potentially expose other tenants' data, depending on application privileges and workload isolation. A complete post-escape attack chain has not been established in the available information.
If you can’t patch tonight, do this now.
No vendor-supported workaround is specified. Pending an upgrade, restrict or suspend compilation of untrusted WebAssembly modules, authenticate and review module submissions, and reject unusually large modules or br_table instructions. Apply least privilege and strong operating-system isolation to limit the consequences of a sandbox escape. These measures reduce exposure but do not correct the compiler defect.
Patch, then assume compromise.
Upgrade to Wasmtime 36.0.19, 48.0.7, 49.0.4, 50.0.0, or a later patched release appropriate to the deployment. Migrate unsupported release lines to a supported fixed version. Update embedded dependencies, rebuild and redeploy every affected application, and regenerate cached or precompiled modules using the patched compiler; updating only the standalone command-line tool does not fix embedded copies. The compiler fix routes the default case through the jump table rather than the limited-range conditional branch.
1 exploit validated by Mallory's analysis.
20 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.