---
id: "CVE-2026-115393"
kind: "vulnerability"
aliases: ["CVE-2026-115393"]
title: "Wasmtime: Store APIs accept objects from other Engines, causing type confusion"
severity: "low"
cvss: 3.8
epss: 0.00092
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["embedders", "runtime", "rust", "wasmtime", "webassembly"]
not_affected_if: ["no-cross-engine-objects", "single-engine"]
published_at: "2026-10-22T19:17:47+00:00"
first_seen_at: "2026-10-23T21:57:31+00:00"
updated_at: "2026-10-25T04:43:11+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-115393", "first_seen_at": "2026-10-23T21:57:31+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-115393", "first_seen_at": "2026-10-24T07:15:51+00:00"}]
---

# Wasmtime: Store APIs accept objects from other Engines, causing type confusion

Several Wasmtime Store APIs do not check that objects belong to the Store's Engine, so mixing objects across Engines can cause signature mismatches. An attacker who can make an embedder mix objects between Engines may cause out-of-bounds stack writes, GC heap corruption, or a panic.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `wasmtime --version` or check the `wasmtime` crate version in `Cargo.lock` to see whether it falls in a vulnerable range (before `24.0.12`, `25.0.0` to before `36.0.13`, `37.0.0` to before `46.0.2`, or `47.0.0` to before `47.0.3`).
- Search the codebase for calls to `Instance::new`, `StructRefPre::new`, or `Tag::new` that take objects created from a different Engine.

## Fix

- Upgrade Wasmtime to `24.0.12`, `36.0.13`, `46.0.2`, or `47.0.3`, matching your major release line.

## Timeline

- 2026-10-23T21:57:31+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-115393
- 2026-10-24T07:15:51+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-115393

## From the sources

Wasmtime before 24.0.12, 25.0.0 before 36.0.13, 37.0.0 before 46.0.2, and 47.0.0 before 47.0.3 contains a type confusion vulnerability because several Store APIs fail to validate that objects belong to the Store's Engine. Embedders mixing objects between Engines via Instance::new, StructRefPre::new, or Tag::new can trigger trampoline signature mismatches causing out-of-bounds stack writes, GC heap corruption, or panics.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
