{"id":"CVE-2026-54912","title":"WAMR fast interpreter loader heap buffer overflow via constant deduplication mismatch","summary":"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 …","severity":"high","cvss":8.8,"cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N","cvssSource":"cna","cwe":["CWE-787"],"vendor":"bytecodealliance","product":"wasm-micro-runtime","affected":["wasm-micro-runtime < 2.4.5"],"ssvc":{"exploitation":"poc","automatable":"no","technicalImpact":"total","timestamp":"2026-11-05T18:42:22.842506Z"},"exploitAvailable":true,"published":"2026-11-05","updated":"2026-11-05","sourceUpdated":"2026-11-05T18:44:51.857Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-54912","references":[{"url":"https://github.com/wasm-micro-runtime/wasm-micro-runtime/security/advisories/GHSA-jjv3-x3jf-cg49","label":"https://github.com/wasm-micro-runtime/wasm-micro-runtime/security/advisories/GHSA-jjv3-x3jf-cg49"},{"url":"https://github.com/wasm-micro-runtime/wasm-micro-runtime/commit/b1353b5e8983047ff68829c99abf1355d5f389cf","label":"https://github.com/wasm-micro-runtime/wasm-micro-runtime/commit/b1353b5e8983047ff68829c99abf1355d5f389cf"},{"url":"https://gist.github.com/shumbo/b710c35b005ed871447fce385d1ab760","label":"https://gist.github.com/shumbo/b710c35b005ed871447fce385d1ab760"},{"url":"https://github.com/wasm-micro-runtime/wasm-micro-runtime/releases/tag/WAMR-2.4.5","label":"https://github.com/wasm-micro-runtime/wasm-micro-runtime/releases/tag/WAMR-2.4.5"}],"tags":["cve.org","exploit-available"],"ingestedAt":"2026-11-05T22:38:31.476Z","slug":"CVE-2026-54912","body":"## Overview\n\nWebAssembly 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.\n\n## Affected\n\n- `wasm-micro-runtime < 2.4.5`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"midnight","depthScore":60,"depthScoreParts":{"impact":48.4,"likelihood":0,"exploitation":12,"ransomware":0},"changes":[]}