Alexcrichton

#3040of 53,630
82.8Total CVSS
Vulnerabilities · 12
Low
2
Medium
4
High
5
Critical
1
PT-2026-21804
7.5
2026-02-24
Wasmtime · Wasmtime · CVE-2026-27195
**Name of the Vulnerable Software and Affected Versions** Wasmtime versions 39.0.0 through 41.0.3 **Description** Wasmtime, a runtime for WebAssembly, can experience a panic when the host embedder drops the future returned by `wasmtime::component::[Typed]Func::call async` before it resolves, and then calls the same function again with the same component instance. This occurs because the component instance enters a non-reenterable state, leading to a trap and subsequent panic during task disposal. The issue arises from a bug in the implementation of `[Typed]Func::call async` introduced with the `component-model-async` feature, which became the default starting with version 39.0.0. The `API Endpoint` involved is `wasmtime::component::[Typed]Func::call async`. The `variable` representing the returned future is not explicitly named, but its improper handling triggers the issue. The issue does not affect embeddings with the `component-model-async` compile-time feature disabled. **Recommendations** Wasmtime versions 39.0.0 through 40.0.3 should be updated to version 40.0.4 or 41.0.4. Wasmtime versions 40.0.4 through 41.0.3 should be updated to version 41.0.4. If an embedding is not using any component-model-async features, disable the `component-model-async` Cargo feature. Ensure every `call async` future is awaited until it completes. Refrain from using the `Store` again after dropping a not-yet-resolved `call async` future.
PT-2024-32801
6.8
2024-10-02
Wasmtime · Wasmtime · CVE-2024-47763
**Name of the Vulnerable Software and Affected Versions** Wasmtime versions 21.0.0 through 21.0.1 Wasmtime versions 22.0.0 through 22.0.0 Wasmtime versions 23.0.0 through 23.0.2 Wasmtime versions 24.0.0 through 24.0.0 Wasmtime versions 25.0.0 through 25.0.1 **Description** The issue is related to Wasmtime's implementation of WebAssembly tail calls combined with stack traces, which can result in a runtime crash in certain WebAssembly modules. This can happen when an exported function in a WebAssembly module performs a `return call` (or `return call indirect` or `return call ref`) to an imported host function that captures a stack trace. The crash is due to an internal assert in the stack-walking code that raises a Rust `panic!()`. The impact of this issue is a denial-of-service vector where a malicious WebAssembly module or component can cause the host to crash. There is no other impact at this time other than availability of a service as the result of the crash is always a crash and no more. **Recommendations** For Wasmtime versions 21.0.0 through 21.0.1, upgrade to version 21.0.2. For Wasmtime versions 22.0.0 through 22.0.0, upgrade to version 22.0.1. For Wasmtime versions 23.0.0 through 23.0.2, upgrade to version 23.0.3. For Wasmtime versions 24.0.0 through 24.0.0, upgrade to version 24.0.1. For Wasmtime versions 25.0.0 through 25.0.1, upgrade to version 25.0.2. As a temporary workaround, consider disabling tail call support in Wasmtime by setting `Config::wasm tail call(false)`.
PT-2023-2185
10
2023-02-23
Wasmtime · Wasmtime · CVE-2023-26489
**Name of the Vulnerable Software and Affected Versions** wasmtime versions prior to 4.0.1 wasmtime versions prior to 5.0.1 wasmtime versions prior to 6.0.1 **Description** The issue is related to a bug in the Cranelift code generator of wasmtime, which mistakenly calculates a 35-bit effective address instead of the defined 33-bit effective address for WebAssembly. This allows a malicious module to read or write memory up to 34G away from the base of linear memory, potentially leading to arbitrary code execution or data corruption. The bug is specific to x86 64 targets and does not affect the AArch64 backend. Affected embedders are recommended to analyze preexisting wasm modules for potential exploitation and consider workarounds to mitigate the issue. **Recommendations** For wasmtime versions prior to 4.0.1: Update to version 4.0.1 or later to fix the erroneous lowering rules in the Cranelift backend. For wasmtime versions prior to 5.0.1: Update to version 5.0.1 or later to fix the erroneous lowering rules in the Cranelift backend. For wasmtime versions prior to 6.0.1: Update to version 6.0.1 or later to fix the erroneous lowering rules in the Cranelift backend. As a temporary workaround, consider using the `Config::static memory maximum size(0)` option to force explicit bounds checking for all accesses to linear memory. Alternatively, use the `Config::static memory guard size(1 << 36)` option to increase the guard pages placed after linear memory, or switch to a non-x86 64 host if possible.
PT-2022-24951
5.9
2022-11-05
Wasmtime · Wasmtime · CVE-2022-39392
**Name of the Vulnerable Software and Affected Versions** Wasmtime versions prior to 2.0.2 **Description** There is a bug in Wasmtime's implementation of its pooling instance allocator when the allocator is configured to give WebAssembly instances a maximum of zero pages of memory. In this configuration, the virtual memory mapping for WebAssembly memories did not meet the compiler-required configuration requirements for safely executing WebAssembly modules. Wasmtime's default settings require virtual memory page faults to indicate that wasm reads/writes are out-of-bounds, but the pooling allocator's configuration would not create an appropriate virtual memory mapping for this, meaning out of bounds reads/writes can successfully read/write memory unrelated to the wasm sandbox within range of the base address of the memory mapping created by the pooling allocator. This bug can only be triggered by setting `InstanceLimits::memory pages` to zero. This is expected to be a very rare configuration since this means that wasm modules cannot allocate any pages of linear memory. All wasm modules produced by all current toolchains are highly likely to use linear memory, so it's expected to be unlikely that this configuration is set to zero by any production embedding of Wasmtime. **Recommendations** To resolve the issue, upgrade to Wasmtime 2.0.2. As a temporary workaround, consider increasing the `memory pages` allotment when configuring the pooling allocator to a value greater than zero. If an embedding wishes to still prevent memory from actually being used, then the `Store::limiter` method can be used to dynamically disallow growth of memory beyond 0 bytes large. Note that the default `memory pages` value is greater than zero.