WAMR fast interpreter loader heap overflow via constant deduplication mismatch
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- Low · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
WebAssembly Micro Runtime (WAMR) before 2.4.5 has a heap buffer overflow in the fast interpreter loader, which writes compiled-code data past the allocated buffer (CWE-787). The sizing and emitting passes of the loader can make inconsistent constant-table decisions after duplicate constants are removed, so the second pass emits copy operands that the first pass did not account for. A crafted WebAssembly module can trigger the overflow during loading, before guest code runs, which can corrupt heap metadata and crash the process for a denial of service. Builds with WAMR_BUILD_FAST_INTERP=1 are affected.
Written with Claude Haiku 5.5 from the sources below · 2026-11-05
Description from the CNA
WebAssembly Micro Runtime (WAMR) is a lightweight standalone WebAssembly (Wasm) runtime. Prior to 2.4.5, the two-pass fast interpreter loader in core/iwasm/interpreter/wasm_loader.c can make inconsistent constant-table decisions between the sizing pass and the emitting pass. After duplicate constants inflate the first pass beyond the constant-slot limit, wasm_loader_get_const_offset emits later constants inline, but the between-pass sort and deduplication reduces the table so the second pass can choose table references and cause reserve_block_ret to emit additional copy operands that were not included in code_compiled_peak_size. A crafted module can therefore make the second pass write partially attacker-controlled compiled-code data beyond the heap buffer allocated from the first pass's size calculation during wasm_runtime_load, before guest code executes. This can corrupt host heap metadata and deterministically crash the process, causing denial of service; further consequences depend on the host application's heap layout. Builds using WAMR_BUILD_FAST_INTERP=1 are affected; disabling the fast interpreter avoids the vulnerable loader. This issue is fixed in version 2.4.5.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| bytecodealliance | wasm-micro-runtime | before 2.4.5 | 2.4.5 | Patch available | CNA |
- wasm-micro-runtime Vendorbytecodealliance Affected before 2.4.5 Fixed in 2.4.5 Patch available CNA
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:bytecodealliance:webassembly_micro_runtime:*:*:*:*:*:*:*:* | — | — | bytecodealliance |
- cpe:2.3:a:bytecodealliance:webassembly_micro_runtime:*:*:*:*:*:*:*:* Versions — — ·bytecodealliance
Remediation
Upgrade bytecodealliance wasm-micro-runtime to version 2.4.5, which fixes the issue. Builds that do not need the fast interpreter can disable it to avoid the vulnerable loader.
Written with Claude Haiku 5.5 from the sources below · 2026-11-05
- Fix · CNA wasm-micro-runtime (bytecodealliance) Fixed in 2.4.5
Timeline
- 2026-11-05 Threatist record created from CVE-2026-54912
- 2026-11-05 CISA SSVC decision points changed
- 2026-11-05 Priority changed: MEDIUM → HIGH
References
Other 4
- https://github.com/wasm-micro-runtime/wasm-micro-runtime/security/advisories/GHSA-jjv3-x3jf-cg49
- https://github.com/wasm-micro-runtime/wasm-micro-runtime/commit/b1353b5e8983047ff68829c99abf1355d5f389cf
- https://gist.github.com/shumbo/b710c35b005ed871447fce385d1ab760
- https://github.com/wasm-micro-runtime/wasm-micro-runtime/releases/tag/WAMR-2.4.5
More bytecodealliance vulnerabilities
- TI-2024-16741 An issue in bytecodealliance wasm-micro-runtime before v.b3f728c and fixed in commit… CVSS 3.1HIGH 8.8
- TI-2024-22658 An out-of-bound memory read vulnerability was discovered in Bytecode Alliance… CVSS 3.1HIGH 7.5
- TI-2024-18300 wasm-micro-runtime (aka WebAssembly Micro Runtime or WAMR) 06df58f is vulnerable to NULL… CVSS 3.1HIGH 7.5
- TI-2023-26034 An heap overflow vulnerability was discovered in Bytecode alliance wasm-micro-runtime… CVSS 3.1HIGH 7.5
- TI-2025-33969 WebAssembly Micro Runtime's `--addr-pool` option allows all IPv4 addresses when subnet mask is not specified CVSS 4.0MEDIUM 6.9
- TI-2024-22657 A heap buffer overflow vulnerability was discovered in Bytecode Alliance… CVSS 3.1MEDIUM 6.2
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences