# CVE-2025-64345: Wasmtime provides unsound API access to a WebAssembly shared linear memory

> Wasmtime's unsound API allows data races on shared WebAssembly memory, potentially leading to host memory corruption or information disclosure.

- **Severity:** Low 1.8 (`CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** An administrator
- **Attackable:** Local or same network only
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 12 Nov 2025
- **Updated:** 12 Nov 2025
- **Also known as:** DEBIAN-CVE-2025-64345, GHSA-hc7m-r6v8-hg9q, JLSEC-2026-1350, RUSTSEC-2025-0118, UBUNTU-CVE-2025-64345

## What is CVE-2025-64345?

CVE-2025-64345 is a low-severity vulnerability in bytecodealliance wasmtime, published on 12 Nov 2025. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.

### Official description

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.

Weakness: CWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization)

## Which versions are affected by CVE-2025-64345?

9 open source packages ship an affected version, including wasmtime.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `wasmtime` | crates.io | All versions | 24.0.5 |
| `wasmtime` | crates.io | All versions | 24.0.5 |
| `wasmtime` | crates.io | From 0.0.0-0 | 24.0.5, 36.0.3, 37.0.3, 38.0.4 |
| `wasmtime` | crates.io | From 26.0.0 | 36.0.3 |
| `wasmtime` | crates.io | From 26.0.0 | 36.0.3 |
| `wasmtime` | crates.io | From 37.0.0 | 37.0.3 |
| `wasmtime` | crates.io | From 37.0.0 | 37.0.3 |
| `wasmtime` | crates.io | From 38.0.0 | 38.0.4 |
| `wasmtime` | crates.io | From 38.0.0 | 38.0.4 |

## How do I fix CVE-2025-64345?

Upgrade wasmtime to a fixed version for your release line: 24.0.5, 36.0.3, 37.0.3 or 38.0.4.

## Is CVE-2025-64345 being exploited?

There is no known exploitation of CVE-2025-64345 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2025-64345 and fix it if it is affected.

What it is: CVE-2025-64345 is a low-severity vulnerability in bytecodealliance wasmtime, published on 12 Nov 2025. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2025-64345 in the wild and no public exploit code.

Affected packages and fixed versions:
- wasmtime (crates.io): affected all versions; fixed in 24.0.5
- wasmtime (crates.io): affected all versions; fixed in 24.0.5
- wasmtime (crates.io): affected from 0.0.0-0; fixed in 24.0.5, 36.0.3, 37.0.3, 38.0.4
- wasmtime (crates.io): affected from 26.0.0; fixed in 36.0.3
- wasmtime (crates.io): affected from 26.0.0; fixed in 36.0.3
- wasmtime (crates.io): affected from 37.0.0; fixed in 37.0.3
- wasmtime (crates.io): affected from 37.0.0; fixed in 37.0.3
- wasmtime (crates.io): affected from 38.0.0; fixed in 38.0.4
- wasmtime (crates.io): affected from 38.0.0; fixed in 38.0.4

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2025-64345/ (Markdown: https://insights.sbomify.com/CVE-2025-64345/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2025-64345
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-64345
- OSV: https://osv.dev/vulnerability/CVE-2025-64345

---
From sbomify Insights: https://insights.sbomify.com/CVE-2025-64345/
Summaries are generated and may contain mistakes; the official description above is the record.
