CVE-2026-115393 in Wasmtimeinfo

Summary

by MITRE • 10/22/2026

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.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 10/22/2026

The vulnerability identified in Wasmtime versions prior to 24.0.12, 25.0.0 through 36.0.13, 37.0.0 through 46.0.2, and 47.0.0 through 47.0.3 represents a critical type confusion flaw rooted in insufficient validation within the Store API layer. Wasmtime serves as a WebAssembly runtime that allows applications to execute sandboxed code modules securely. The core of this vulnerability lies in the failure of several internal APIs to rigorously verify that objects, such as instances, struct references, and tags, actually belong to the specific Engine associated with their respective Store context. In normal operation, Wasmtime enforces strict isolation between different execution contexts by binding objects to a single Engine instance. This design ensures type safety and memory integrity within the WebAssembly sandbox. However, when embedders or host applications mix objects originating from one Engine into another via functions like Instance::new, StructRefPre::new, or Tag::new, this boundary is breached. The runtime fails to detect that these objects were initialized under a different engine configuration, leading to a state where the runtime assumes compatibility between incompatible internal structures.

This type confusion directly triggers severe operational impacts due to trampoline signature mismatches during function calls and data access operations. When an object from one Engine interacts with components of another, the expected memory layout and calling conventions diverge significantly. This mismatch can result in out-of-bounds stack writes, where incorrect return addresses or argument pointers are pushed onto the execution stack, potentially overwriting adjacent memory regions. Furthermore, because WebAssembly relies heavily on garbage collection for managing linear memory and reference types, this confusion leads to GC heap corruption. The runtime may attempt to manage memory blocks that do not conform to its expectations, causing double frees, use-after-free conditions, or allocation of invalid pointers. These low-level memory corruptions can be exploited by malicious WebAssembly modules to achieve arbitrary code execution within the host process, effectively breaking out of the sandbox and compromising the entire application environment. In less severe cases, these inconsistencies cause immediate panics, leading to denial-of-service scenarios where the runtime crashes unexpectedly during normal operation.

From a classification perspective, this vulnerability aligns with CWE-843, which describes access to incorrect type or reference confusion, specifically manifesting as improper validation of object ownership and context binding. The exploitation technique leverages ATT&CK T1059, Command and Scripting Interpreter behaviors, by abusing the runtime's execution capabilities to execute unauthorized instructions within the host process memory space. It also relates to CWE-787, Out-of-bounds Write, due to the potential for stack corruption resulting from signature mismatches. The root cause is a lack of strict contextual validation in the API layer that allows cross-engine object injection without verifying engine identity or compatibility flags.

Mitigation strategies require immediate updates to patched versions of Wasmtime as specified above. For embedders unable to update immediately, it is critical to enforce strict isolation policies by ensuring that all WebAssembly instances, struct references, and tags are created within a single Store-Engine pair. Developers should avoid passing objects between different Stores or Engines unless explicitly supported by safe conversion APIs provided in newer versions. Additionally, enabling runtime assertions during development can help detect such mismatches early before deployment to production environments where exploitation risks are higher. Regular auditing of embedder code for proper context management is essential to prevent similar type confusion vulnerabilities from being introduced through custom integration logic.

Responsible

VulnCheck

Reservation

10/22/2026

Disclosure

10/22/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Want to know what is going to be exploited?

We predict KEV entries!