Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply malicious WebAssembly component to embedding
-
ExploitImport tag with disallowed subtype (accepted by faulty validation)
-
ExecutionMis-type exception payload to corrupt GC heap
-
ImpactTrigger Wasmtime panic (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Specified type validation
|
| Exploitation Conditions | Exploitation requires that the WebAssembly exceptions proposal is enabled - on-by-default starting in Wasmtime 47.0.0 - and that the attacker can supply or instantiate an untrusted WebAssembly component in the host embedding. The specific trigger is a core module importing a WebAssembly tag whose type is a subtype of the original tag's type, which the faulty validator accepts; the guest then mis-types an exception object payload. Limiting factors: only Wasmtime 47.0.0-48.0.3 and 49.0.0-49.0.1 are affected; embeddings that do not run untrusted guests or that disable the exceptions proposal are not exposed; and impact is bounded to a panic/DoS because the GC heap is designed to be resilient to corruption. The vendor states there is no workaround other than upgrading to 48.0.4/49.0.2 or disabling the exceptions proposal. |
| Impact | This is a genuine but moderate-severity issue, not an emergency. The CVSS 4.0 vector (5.9, AV:N/AC:L/AT:P/PR:L/UI:P) and the vendor advisory agree that the only impact is availability: the mis-typed exception payload corrupts Wasmtime's GC heap, and because that heap is deliberately engineered to be resilient the realistic worst case is a host-side panic (denial of service), not code execution or data disclosure - consistent with VC:N/VI:N/VA:H. PR:L and AT:P reflect that the attacker must be able to supply/instantiate an untrusted guest component AND that a configuration condition (the WebAssembly exceptions proposal, on-by-default since 47.0.0) must hold, which materially narrows exposure to embeddings that run untrusted WebAssembly. Signals are mostly aligned toward a 'patch this cycle' posture rather than drop-everything: the vuln.today decision label is this_month, there is no CISA KEV listing, and no public exploit code was identified at time of analysis. Key caveat on conflicting metadata: the supplied Tag 'Information Disclosure' directly contradicts both the vendor description (GC heap corruption → panic) and the CVSS confidentiality metric (VC:N) - the actual security property at risk is availability, so treat the disclosure framing as mislabeled. EPSS is not provided in the input, so exploitation probability could not be factored in. |
| Exploit ScenarioDerived | An attacker who can submit an untrusted WebAssembly component to a Wasmtime embedding (version 47.0.0-48.0.3 or 49.0.0-49.0.1) with the exceptions proposal enabled crafts a core module that imports a WebAssembly tag using a subtype of the original tag's type, which Wasmtime's validator wrongly accepts. The guest then mis-types an exception object's payload, corrupting the host's GC heap and causing Wasmtime to panic (denial of service). No public exploit identified at time of analysis; the attack requires AV:N delivery of the component and relatively low attack complexity once the exceptions proposal is active. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Wasmtime 47.0.0 through 48.0.3 and 49.0.0 through 49.0.1 accept ill-formed WebAssembly components in which a core module imports a tag whose type is a subtype of the imported tag's declared type, which the specification forbids; a malicious guest can use this to mis-type an exception object payload and corrupt the runtime's GC heap, causing Wasmtime to panic. Exposure requires the WebAssembly exceptions proposal to be enabled (on by default from 47.0.0) and the embedding to instantiate untrusted guest components, and the CVSS vectors indicate authenticated remote access with user interaction. Impact is bounded to availability: the GC heap is designed to tolerate corruption, so the vendor-characterised outcome is a host panic rather than code execution, yielding a moderate-severity denial-of-service rather than an emergency; no public exploit code and no confirmed active exploitation were identified at time of analysis.
RemediationAI
Upgrade to Wasmtime 48.0.4 or 49.0.2, which implement the missing tag-import type check and correctly reject ill-formed components; users on the 48.x line must move to 48.0.4 or later and users on 49.x must move to 49.0.2 or later, with details in GHSA-cfhf-m2cr-62wj (https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-cfhf-m2cr-62wj). The vendor states there is no known workaround, and the only alternative it offers is to change the embedding so the WebAssembly exceptions proposal is disabled - that removes the vulnerable validation path entirely, but the trade-off is that any guest module relying on exception handling tags will fail validation or instantiation and must be reworked or run in a separate runtime. Embeddings that never instantiate untrusted guest components, or that already run with exceptions disabled, are not exposed and do not require emergency action, though upgrading is still recommended for consistency. No other compensating controls are documented in the available sources.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in cargo
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is rooted in CWE-1287 (improper validation of a specified type of input) inside Wasmtime's WebAssembly component-model validation layer. Components wrap core modules, and a core module may import a WebAssembly tag (the exception-handling construct introduced by the exceptions proposal). The validator failed to enforce that the imported tag's type must match the original tag type exactly, and instead accepted a subtype relation; the WebAssembly specification does not permit that substitution. Because the type check passed, a guest could then construct and throw an exception object whose payload was laid out and read under a different type than the importing module expects, driving a type confusion into the Wasmtime GC heap. Wasmtime's GC heap is deliberately built to remain resilient under corruption, but the engine is not proven bug-free in that state, so certain operations on a corrupt heap can panic. The affected code path only executes when the exceptions proposal is enabled, which became the default in Wasmtime 47.0.0; embeddings that leave that proposal off never reach the mis-validated import path. Exploitation is achievable remotely over the untrusted-guest boundary but depends on prerequisites outside the attacker's control (exceptions enabled, host instantiating attacker-supplied components, and a user-interaction step), which is why the assessed vector is AV:N/AC:H/PR:L/UI:R with availability-only impact (A:H) and no confidentiality or integrity effect in the assessed score.
Know when Webassembly gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Attacker must supply an untrusted guest (PR:L) and the exceptions proposal must be enabled (an attacker-uncontrolled condition, hence AC:H); impact is host panic only, so C:N/I:N/A:H.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.org
Wasmtime 47.0.0 before 48.0.4 and 49.0.0 before 49.0.2 contains an improper validation vulnerability that accepts components whose core modules import WebAssembly tags with a subtype of the original type. Malicious guests can mis-type exception object payloads to corrupt the GC heap, causing Wasmtime to panic when the exceptions proposal is enabled.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
More in Webassembly
View allWebAssembly v1.0.29 was discovered to contain a heap overflow via the component component wabt::Node::operator. Rated hi
wasm-interp v1.0.29 was discovered to contain a heap overflow via the component std::vector<wabt::Type, std::allocator<w
An issue in wasm2c 1.0.32, wasm2wat 1.0.32, wasm-decompile 1.0.32, and wasm-validate 1.0.32 allows attackers to cause a
A Denial of Service vulnerability exits in Binaryen 103 due to an assertion abort in wasm::handle_unreachable. Rated hig
Sandbox escape in wasm2c (wabt ≤ 1.0.41) allows an attacker controlling WebAssembly content to achieve arbitrary read/wr
wasm-interp v1.0.29 was discovered to contain an out-of-bounds read via the component OnReturnCallIndirectExpr->GetRetur
wasm-interp v1.0.29 was discovered to contain an out-of-bounds read via the component OnReturnCallExpr->GetReturnCallDro
An issue was discovered in Binaryen 1.38.32. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl
An issue was discovered in Binaryen 1.38.32. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl
wasm::WasmBinaryBuilder::readUserSection in wasm-binary.cpp in Binaryen 1.38.22 triggers an attempt at excessive memory
In Binaryen 1.38.22, there is a use-after-free problem in wasm::WasmBinaryBuilder::visitCall in wasm-binary.cpp. Rated m
A NULL pointer dereference was discovered in wasm::SExpressionWasmBuilder::parseExpression in wasm-s-parser.cpp in Binar
EUVD-2026-108309
GHSA-cvpp-75f3-xc4p
NVD
CVE.org
EPSS
Exploit-DB