{"id":"CVE-2026-115893","state":"PUBLISHED","title":"Wasmtime: Cranelift backend on aarch64 can jump to incorrect target on large Wasm `br_table` instruction","description":"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 br_table 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.","publishedAt":"2026-10-23T21:29:33.917Z","updatedAt":"2026-10-29T18:20:01.899Z","severity":{"score":9.9,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","source":"GitHub_M"},"assigner":"GitHub_M","products":["bytecodealliance wasmtime"],"affected":[{"vendor":"bytecodealliance","product":"wasmtime","versions":[{"version":"< 36.0.19","status":"affected"},{"version":">= 37.0.0, < 48.0.7","status":"affected"},{"version":">= 49.0.0, < 49.0.4","status":"affected"}]}],"references":["https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-mghf-wjfp-p5xm","https://github.com/bytecodealliance/wasmtime/pull/14818","https://github.com/bytecodealliance/wasmtime/pull/14819","https://github.com/bytecodealliance/wasmtime/pull/14820","https://github.com/bytecodealliance/wasmtime/pull/14826","https://github.com/bytecodealliance/wasmtime/commit/222ff3a65dab9aa7011f8c246937751a0bac5abd","https://github.com/bytecodealliance/wasmtime/commit/994549891c8a706cb4f2809f9d17b9f67b31e618","https://github.com/bytecodealliance/wasmtime/commit/e61df1b454be9313d61a5f8de07722a421139bbe","https://github.com/bytecodealliance/wasmtime/commit/f517bd6e890c7c1291ab9fe05d8cc0c9f11e56aa","https://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.19","https://github.com/bytecodealliance/wasmtime/releases/tag/v48.0.7","https://github.com/bytecodealliance/wasmtime/releases/tag/v49.0.4"],"weaknesses":["CWE-691"],"ingestedAt":"2026-10-29T20:10:43.281Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/115xxx/CVE-2026-115893.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-115893","state":"PUBLISHED","datePublished":"2026-10-23T21:29:33.917Z","dateUpdated":"2026-10-29T18:20:01.899Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-10-23T19:37:27.177Z"},"containers":{"cna":{"title":"Wasmtime: Cranelift backend on aarch64 can jump to incorrect target on large Wasm `br_table` instruction","descriptions":[{"lang":"en","value":"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 br_table 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."}],"affected":[{"vendor":"bytecodealliance","product":"wasmtime","versions":[{"version":"< 36.0.19","status":"affected"},{"version":">= 37.0.0, < 48.0.7","status":"affected"},{"version":">= 49.0.0, < 49.0.4","status":"affected"}]}],"references":[{"url":"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-mghf-wjfp-p5xm","name":"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-mghf-wjfp-p5xm","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/bytecodealliance/wasmtime/pull/14818","name":"https://github.com/bytecodealliance/wasmtime/pull/14818","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/pull/14819","name":"https://github.com/bytecodealliance/wasmtime/pull/14819","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/pull/14820","name":"https://github.com/bytecodealliance/wasmtime/pull/14820","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/pull/14826","name":"https://github.com/bytecodealliance/wasmtime/pull/14826","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/commit/222ff3a65dab9aa7011f8c246937751a0bac5abd","name":"https://github.com/bytecodealliance/wasmtime/commit/222ff3a65dab9aa7011f8c246937751a0bac5abd","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/commit/994549891c8a706cb4f2809f9d17b9f67b31e618","name":"https://github.com/bytecodealliance/wasmtime/commit/994549891c8a706cb4f2809f9d17b9f67b31e618","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/commit/e61df1b454be9313d61a5f8de07722a421139bbe","name":"https://github.com/bytecodealliance/wasmtime/commit/e61df1b454be9313d61a5f8de07722a421139bbe","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/commit/f517bd6e890c7c1291ab9fe05d8cc0c9f11e56aa","name":"https://github.com/bytecodealliance/wasmtime/commit/f517bd6e890c7c1291ab9fe05d8cc0c9f11e56aa","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.19","name":"https://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.19","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/releases/tag/v48.0.7","name":"https://github.com/bytecodealliance/wasmtime/releases/tag/v48.0.7","tags":["x_refsource_MISC"]},{"url":"https://github.com/bytecodealliance/wasmtime/releases/tag/v49.0.4","name":"https://github.com/bytecodealliance/wasmtime/releases/tag/v49.0.4","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":9.9,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-691","lang":"en","description":"CWE-691: Insufficient Control Flow Management","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-10-23T21:29:33.917Z"},"source":{"advisory":"GHSA-mghf-wjfp-p5xm","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-29T18:19:46.559873Z","id":"CVE-2026-115893","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-29T18:20:01.899Z"}}]}}}