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`/`FutureReader` with concrete payload types throughout, or that never pass streams or futures they created through a guest and back, are not affected.
- Products
- wasmtime
- Affected versions
- Not specified
- Fixed versions
- 48.0.7, 49.0.4
- CVEs
- CVE-2026-115892
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 03:20 UTC · Revision 1
Source evidence
Wasmtime: Panic lowering a host-created component model stream into a guest that expects a different payload type
core-osv · Original sourcePublished 23 Oct 2026, 22:04 UTC
### 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`/`FutureReader` with concrete payload types throughout, or that never pass streams or futures they created through a guest and back, are not affected.
osv:GHSA-9pvw-hwfg-92h5
wasmtime
Fixed versions: 48.0.7
wasmtime
Fixed versions: 49.0.4
Complete source record
{
"id": "3fcfb3cef698482718d8b86276e16a4f0c271c40587af5f32f7c6f48025fc82d",
"url": "https://osv.dev/vulnerability/GHSA-9pvw-hwfg-92h5",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Wasmtime: Panic lowering a host-created component model stream into a guest that expects a different payload type",
"summary": "### 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`/`FutureReader` with concrete payload types throughout, or that never pass streams or futures they created through a guest and back, are not affected.",
"evidence": "osv:GHSA-9pvw-hwfg-92h5",
"products": [
{
"name": {
"value": "wasmtime",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "48.0.7",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "wasmtime",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "49.0.4",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "medium",
"structured": {
"id": "GHSA-9pvw-hwfg-92h5",
"aliases": [
"CVE-2026-115892",
"GHSA-9pvw-hwfg-92h5",
"RUSTSEC-2026-0378"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "46.0.0"
},
{
"fixed": "48.0.7"
}
]
}
],
"package": {
"name": "wasmtime",
"purl": "pkg:cargo/wasmtime",
"ecosystem": "crates.io"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-9pvw-hwfg-92h5/GHSA-9pvw-hwfg-92h5.json"
}
},
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "49.0.0"
},
{
"fixed": "49.0.4"
}
]
}
],
"package": {
"name": "wasmtime",
"purl": "pkg:cargo/wasmtime",
"ecosystem": "crates.io"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-9pvw-hwfg-92h5/GHSA-9pvw-hwfg-92h5.json"
}
}
],
"modified": "2026-10-23T22:25:32.526713550Z",
"provider": "osv",
"references": [
"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-9pvw-hwfg-92h5",
"https://github.com/bytecodealliance/wasmtime/pull/14819",
"https://github.com/bytecodealliance/wasmtime/pull/14820",
"https://github.com/bytecodealliance/wasmtime/pull/14827",
"https://github.com/bytecodealliance/wasmtime/commit/222ff3a65dab9aa7011f8c246937751a0bac5abd",
"https://github.com/bytecodealliance/wasmtime/commit/48dacc76241f06088e79f3ce1b17642f2f7bf158",
"https://github.com/bytecodealliance/wasmtime/commit/994549891c8a706cb4f2809f9d17b9f67b31e618",
"https://github.com/bytecodealliance/wasmtime",
"https://github.com/bytecodealliance/wasmtime/releases/tag/v48.0.7",
"https://github.com/bytecodealliance/wasmtime/releases/tag/v49.0.4",
"https://rustsec.org/advisories/RUSTSEC-2026-0378.html"
],
"provider_metadata": {
"cwe_ids": [
"CWE-843"
],
"severity": "MODERATE",
"github_reviewed": true,
"nvd_published_at": null,
"github_reviewed_at": "2026-10-23T22:04:45Z"
}
},
"related_cves": [
{
"value": "CVE-2026-115892",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 427059,
"published_at": "2026-10-23T22:04:45+00:00"
}