Wasmtime provides unsound API access to a WebAssembly shared linear memory
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 38.0.4, 37.0.3, 36.0.3, 24.0.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
Wasmtime is a runtime for WebAssembly. Prior to version 38.0.4, 37.0.3, 36.0.3, and 24.0.5, Wasmtime's Rust embedder API contains an unsound interaction where a WebAssembly shared linear memory could be viewed as a type which provides safe access to the host (Rust) to the contents of the linear memory. This is not sound for shared linear memories, which could be modified in parallel, and this could lead to a data race in the host. Patch releases have been issued for all supported versions of Wasmtime, notably: 24.0.5, 36.0.3, 37.0.3, and 38.0.4. These releases reject creation of shared memories via `Memory::new` and shared memories are now excluded from core dumps. As a workaround, eembeddings affected by this issue should use `SharedMemory::new` instead of `Memory::new` to create shared memories. Affected embeddings should also disable core dumps if they are unable to upgrade. Note that core dumps are disabled by default but the wasm threads proposal (and shared memory) is enabled by default.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- bytecodealliance wasmtime
From 38.0.1 · fixed in 38.0.4; From 37.0.0 · fixed in 37.0.3; From 26.0.0 · fixed in 36.0.3; fixed in 24.0.5
- wasmtimecrates.io
From 38.0.0 · fixed in 38.0.4
- wasmtimecrates.io
From 37.0.0 · fixed in 37.0.3
- wasmtimecrates.io
From 26.0.0 · fixed in 36.0.3
- wasmtimecrates.io
fixed in 24.0.5
- wasmtimecrates.io
From 0.0.0-0 · fixed in 24.0.5; From 25.0.0 · fixed in 36.0.3; From 37.0.0 · fixed in 37.0.3; From 38.0.0 · fixed in 38.0.4