Wasmtime: Panic lowering a host-created component model stream into a guest that expects a different payload type
### 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: 1. Create streams or futures on the host with `StreamReader::new` or `FutureReader::new` 2. 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. 3. Pass them on to a guest function whose `stream` or `future` payload 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.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-115892US | — | — | ||
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 c… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/bytecodealliance/wasmtimePACKAGE
- https://github.com/bytecodealliance/wasmtime/commit/222ff3a65dab9aa7011f8c246937751a0bac5abdWEB
- https://github.com/bytecodealliance/wasmtime/commit/48dacc76241f06088e79f3ce1b17642f2f7bf158WEB
- https://github.com/bytecodealliance/wasmtime/commit/994549891c8a706cb4f2809f9d17b9f67b31e618WEB
- https://github.com/bytecodealliance/wasmtime/pull/14819WEB
- https://github.com/bytecodealliance/wasmtime/pull/14820WEB
- https://github.com/bytecodealliance/wasmtime/pull/14827WEB
- https://github.com/bytecodealliance/wasmtime/releases/tag/v48.0.7WEB
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan