GHSA-9pvw-hwfg-92h5 CVE-2026-115892 RUSTSEC-2026-0378
Wasmtime: Panic lowering a host-created component model stream into a guest that expects a different payload type
- Severity
- 0.0 / 10
- Medium · CVSS 4.0
- Exploit chance (EPSS)
- 0.43%
- Chance of exploitation in the next 30 days. Higher than 37.67% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-843 Access of Resource Using Incompatible Type ('Type Confusion')
- Fix
48.0.7- Upgrade wasmtime to this version or later
Description
Summary
Wasmtime may panic when the host lowers a component model stream or future into a guest, if the host created that stream or future with one payload type and the guest expects a different one. This can happen when an embedder creates a stream or future, passes it through a guest, receives it back under a type-erased type such as StreamAny or FutureAny, and then passes it to a guest function with a different payload type.
GHSA-63h4-6cx9-pjfj is a related advisory also fixing issues within this area, and this advisory is being issued for portions of Wasmtime that were not fixed as part of that advisory.
Impact
This affects embedders that do all of the following:
- Create streams or futures on the host with
StreamReader::neworFutureReader::new - Pass them to guest code and receive them back as
StreamAny,FutureAny,Val::Stream/Val::Future, or a typed reader whose payload is one of these. - Pass them on to a guest function whose
streamorfuturepayload type differs from the type the host created them with.
A guest can cause the mismatch in step 3 when it controls the types of the functions it exports or of the values it returns. In that case a malicious guest can make the host panic, a denial of service. Embedders that only use statically typed StreamReader<T>/FutureReader<T> with concrete payload types throughout, or that never pass streams or futures they created through a guest and back, are not affected.
Affected versions
crates.io
| Package | Vulnerable | Fixed in |
|---|---|---|
| wasmtime | >= 46.0.0, < 48.0.7 |
48.0.7 |
| wasmtime | >= 49.0.0, < 49.0.4 |
49.0.4 |
| wasmtime | >= 46.0.0, < 48.0.7>= 49.0.0, < 49.0.4 |
48.0.749.0.4 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
wasmtime crates.io → 48.0.7
- cargo
cargo update -p wasmtime --precise 48.0.7
Severity breakdown
CVSS 4.0 0.0
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
- Attack vector
- Network
- Attack complexity
- High
- Attack requirements
- Present
- Privileges required
- High
- User interaction
- Passive
- Confidentiality (vulnerable system)
- None
- Integrity (vulnerable system)
- None
- Availability (vulnerable system)
- High
- Confidentiality (subsequent systems)
- None
- Integrity (subsequent systems)
- None
- Availability (subsequent systems)
- None
Weakness
CWE-843: Access of Resource Using Incompatible Type ('Type Confusion')
The product allocates or initializes a resource such as a pointer, object, or variable using one type, but it later accesses that resource using a type that is incompatible with the original type.
References
Packages
Other links
- github.com/bytecodealliance/wasmtime/security/advisories/GHSA-9pvw-hwfg-92h5
- github.com/bytecodealliance/wasmtime/pull/14819
- github.com/bytecodealliance/wasmtime/pull/14820
- github.com/bytecodealliance/wasmtime/pull/14827
- github.com/bytecodealliance/wasmtime/commit/222ff3a65dab9aa7011f8c246937751a0ba…
- github.com/bytecodealliance/wasmtime/commit/48dacc76241f06088e79f3ce1b17642f2f7…
- github.com/bytecodealliance/wasmtime/commit/994549891c8a706cb4f2809f9d17b9f67b3…
- github.com/bytecodealliance/wasmtime/releases/tag/v48.0.7
- github.com/bytecodealliance/wasmtime/releases/tag/v49.0.4
- rustsec.org/advisories/RUSTSEC-2026-0378.html
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| RUSTSEC-2026-0424 Unchecked memory usage in transferring borrowed resources between components | Not rated yet | Also affects wasmtime |
| RUSTSEC-2026-0423 Cross-engine type confusion with host-created struct-types-with-supertypes | Not rated yet | Also affects wasmtime |
| RUSTSEC-2026-0422 Typed functions with `i31` or `nullref` arguments may panic due to insufficient type-check | Low | Also affects wasmtime |
| RUSTSEC-2026-0379 Wasmtime: Cranelift backend on aarch64 can jump to incorrect target on large Wasm `br_table` instruction | Critical | Also affects wasmtime |
| GHSA-897f-g5gm-fmxm Wasmtime: Bit-packing in Cranelift compiler causes silent overflow and miscompilation | Critical | Also affects wasmtime |
| RUSTSEC-2026-0364 Exception tags can cause host data structures to be unaligned | Not rated yet | Also affects wasmtime |
| RUSTSEC-2026-0363 Component-model handle tables are capped only per instance and charged to no limit | Medium | Also affects wasmtime |
| RUSTSEC-2026-0361 Panic when pending calls are run after a trap | Not rated yet | Also affects wasmtime |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor