Skip to content
Heist/ feed
Back to feed
MediumFix available

Wasmtime: Panic lowering a host-created component model stream into a guest that expects a different payload type

Type: advisorySources: OSV

### 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 source

Published 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"
}