Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLoad malicious guest into vulnerable embedder
-
ExploitReceive host-created stream/future back as StreamAny/FutureAny
-
ExecutionRe-pass value to guest function with mismatched payload type
-
ImpactSkipped type check panics Wasmtime host (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation is possible only against embedders that do all of the following: (1) create component-model streams or futures on the host via StreamReader::new or FutureReader::new; (2) pass them into guest code and receive them back as a type-erased StreamAny, FutureAny, Val::Stream/Val::Future, or a typed reader wrapping one of these; and (3) pass that value on to a guest function whose stream/future payload type differs from the type the host originally created it with. A malicious guest triggers the mismatch by controlling the types of the functions it exports or the values it returns. Embedders that use only statically typed StreamReader<T>/FutureReader<T> with concrete payload types throughout, or that never pass host-created streams/futures through a guest and back, are NOT affected. The limiting factors are this specific component-model embedding pattern (not a default or common configuration), the requirement to execute attacker-controlled guest code, and the operator action of forwarding the type-erased value; impact is confined to a host crash with no code execution or data exposure. |
| Impact | This is a medium-severity denial-of-service issue, not a high-impact priority. The CVSS 4.0 score of 5.7 is driven entirely by availability loss (VA:H) with no confidentiality or integrity impact (VC:N/VI:N) - the only consequence stated in the GHSA advisory is a host panic. Although the vector is AV:N, exploitation is heavily gated: AC:H, Attack Requirements present (AT:P), high privileges/operator dependency (PR:H), and required user/embedder interaction (UI:P). No EPSS score was supplied, the CVE is not in CISA KEV, and no public exploit or PoC reference is present in the input - only vendor fix PRs and commits. The vuln.today decision label is 'this_month', consistent with a patch-this-cycle item rather than an emergency. The biggest risk-limiting factor is the narrow precondition: only embedders that create streams/futures on the host and round-trip them through a guest as type-erased values are affected. No signals conflict; all point to a real but low-urgency, DoS-only bug. Note the input Tags ('Information Disclosure', 'Memory Corruption') contradict the advisory and CVSS, which describe neither - see data_quality_flags. |
| Exploit ScenarioDerived | An application embeds Wasmtime and creates a component-model stream or future on the host, passes it into guest code, and gets it back as a type-erased StreamAny/FutureAny or Val::Stream/Val::Future. A malicious guest that controls its exported function types returns the value typed for a different payload, and when the host lowers it back into a guest expecting that different type, a required payload-type check is skipped and the Wasmtime host panics, crashing the embedder (denial of service). No public exploit code is identified at the time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Wasmtime 46.0.0 through 48.0.6 and 49.0.0 through 49.0.3 can be panicked by a malicious guest that induces a type mismatch when a host-created component-model stream or future is lowered back into guest code with a different payload type. Exposure is narrow: only embedders that create streams or futures with StreamReader::new or FutureReader::new, pass them through guest code, receive them back through a type-erased path such as StreamAny, FutureAny, Val::Stream or Val::Future, and then forward them to a guest function expecting a different payload type are affected; the result is a host crash (denial of service) with no code execution or data exposure. The issue is fixed in 48.0.7 and 49.0.4, and no public exploit was identified at the time of analysis.
RemediationAI
Vendor-released patches are available: upgrade to Wasmtime 48.0.7 or 49.0.4 depending on your branch (https://github.com/bytecodealliance/wasmtime/releases/tag/v48.0.7, https://github.com/bytecodealliance/wasmtime/releases/tag/v49.0.4); the fixes landed via pull requests 14819, 14820 and 14827 and commits 222ff3a65dab9aa7011f8c246937751a0bac5abd, 48dacc76241f06088e79f3ce1b17642f2f7bf158 and 994549891c8a706cb4f2809f9d17b9f67b31e618, and the advisory is at https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-9pvw-hwfg-92h5. If an upgrade cannot be applied immediately, the actionable constraint from the advisory is to stop exercising the affected pattern: do not create streams or futures with StreamReader::new or FutureReader::new and then pass them through guest code and back under type-erased types such as StreamAny, FutureAny, Val::Stream or Val::Future for forwarding to a guest function whose payload type differs from the original, and keep such values statically typed with concrete payload types end to end; the trade-off is that embedders relying on type-erased forwarding lose that flexibility until they upgrade, while embedders that never round-trip host-created streams or futures through a guest need no change. Because GHSA-63h4-6cx9-pjfj fixed related problems in the same area, confirm that the chosen release level also covers that advisory.
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 defect is a type-confusion problem (CWE-843) in Wasmtime's component-model stream and future plumbing. An embedder that creates a stream or future on the host via StreamReader::new or FutureReader::new and lets it round-trip through guest code can get the value back under a type-erased form (StreamAny, FutureAny, Val::Stream, Val::Future, or a typed reader wrapping one of these); when that value is lowered into a guest function, the required payload-type check is omitted, so the host can hand a value of one payload type to a guest expecting another. A guest influences the mismatch by controlling the types of the functions it exports or the values it returns, and the consequence inside the runtime is a panic rather than memory corruption, which is why only availability is impacted. The provided CVSS vector (AV:N/AC:H/AT:P/PR:H/UI:P, VC:N/VI:N/VA:H) and the independent assessment agree that high privileges and a non-default embedding pattern are prerequisites. Embedders that use only statically typed StreamReader<T>/FutureReader<T> with concrete payload types throughout, or that never pass host-created streams or futures through a guest and back, are unaffected.
Know when Wasmtime 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:H/AT:P/PR:H/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
AC:H and PR:H/UI:R reflect the non-default type-erased round-trip embedding pattern an operator must build and invoke; impact is a host panic only, so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Wasmtime is a runtime for WebAssembly. From 46.0.0 until 48.0.7 and 49.0.4, lowering a host-created component-model stream or future into a guest can omit a required payload-type check after the value passes through guest code and returns through StreamAny, FutureAny, Val::Stream, Val::Future, or an equivalent typed reader. A malicious guest that controls exported function types or returned values can cause the host to pass the type-erased value to a guest expecting a different payload type, which panics the Wasmtime host. This issue is fixed in versions 48.0.7 and 49.0.4.
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
Sandbox escape in Wasmtime on aarch64 lets a user-supplied WebAssembly module redirect an oversized br_table branch to a
Wasmtime versions before 36.0.19, and the 37.0.0 through 42.x line, can silently miscompile attacker-supplied WebAssembl
wasmtime is a fast and secure runtime for WebAssembly. Rated critical severity (CVSS 9.9), this vulnerability is remotel
Wasmtime is a standalone runtime for WebAssembly. Rated critical severity (CVSS 9.8), this vulnerability is remotely exp
Wasmtime is a standalone JIT-style runtime for WebAssembly, using Cranelift. Rated critical severity (CVSS 9.8), this vu
wasmtime is a runtime for WebAssembly. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. Pu
Memory sandbox escape in Wasmtime's Winch compiler (versions 25.0.0 to before 36.0.7, 42.0.2, 43.0.1) enables authentica
Arbitrary memory read/write vulnerability in Bytecode Alliance Wasmtime versions 32.0.0 through 36.0.6, 42.0.0-42.0.1, a
Wasmtime is a standalone runtime for WebAssembly. Rated high severity (CVSS 8.8), this vulnerability is remotely exploit
Wasmtime is a standalone runtime for WebAssembly. Rated high severity (CVSS 8.8), this vulnerability is remotely exploit
Wasmtime is a standalone runtime for WebAssembly. Rated high severity (CVSS 8.6), this vulnerability is remotely exploit
Wasmtime's HTTP header handling in the wasmtime-wasi-http crate crashes when processing excessive header fields, allowin
EUVD-2026-109187
GHSA-9pvw-hwfg-92h5
NVD
CVE.org
VulDB
Exploit-DB