CVE-2026-34988: Wasmtime Wasmtime Has Data Leakage Between Vulnerability

LOW
Advisory Identifier: GHSA-6wgr-89rj-399p
CWE-119
Published
Advisory Summary

CVE-2026-34988 is a LOW wasmtime has data leakage between vulnerability (CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer) affecting Wasmtime libraries in the crates.io ecosystem. The issue involves wasmtime has data leakage between pooling allocator instances. Remediation is available by upgrading affected packages to version 36.0.7, 42.0.2, 43.0.1.

CVE-2026-34988 at a Glance

CVE Identifier CVE-2026-34988
GHSA Identifier GHSA-6wgr-89rj-399p
Severity LOW
CVSS v3.1 Base Score N/A
CWE Classification CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer
Affected Product Wasmtime
Package Ecosystem crates.io
Published Date
Last Updated

How to Fix CVE-2026-34988

To remediate this vulnerability, upgrade all affected Wasmtime dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

wasmtime fixed: 36.0.7
Upgrade wasmtime to 36.0.7
wasmtime fixed: 42.0.2
Upgrade wasmtime to 42.0.2
wasmtime fixed: 43.0.1
Upgrade wasmtime to 43.0.1
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for wasmtime

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-34988, inspect your project dependencies for Wasmtime:

inspect dependencies for wasmtime

Analyze the terminal output to locate any version of Wasmtime in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 36.0.7), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer, where the product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. this may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data. In Wasmtime, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact Wasmtime's implementation of its pooling allocator contains a bug where in certain configurations the contents of linear memory can be leaked from one instance to the next. The implementation of resetting the virtual memory permissions for linear memory used the wrong predicate to determine if resetting was necessary, where the compilation process used a different predicate. This divergence meant that the pooling allocator incorrectly deduced at runtime that resetting virtual memory permissions was not necessary while compile-time determine that virtual memory could be relied upon. Exposing this bug requires specific configuration values to be used. If any of these configurations are not applicable then this bug does not happen: * The pooling allocator must be in use. * The `Config::memory_guard_size` configuration option must be 0. * The `Config::memory_reservation` configuration must be less than 4GiB. * The pooling allocator must be configured with `max_memory_size` the same as the `memory_reservation` value. If all of these conditions are applicable then when a linear memory is reused the VM permissions of the previous iteration are not reset. This means that the compiled code, which is assuming out-of-bounds loads will segfault, will not actually segfault and can read the previous contents of linear memory if it was previously mapped. This represents a data leakage vulnerability between guest WebAssembly instances which breaks WebAssembly's semantics and additionally breaks the sandbox that Wasmtime provides. Wasmtime is not vulnerable to this issue with its default settings, nor with the default settings of the pooling allocator, but embeddings are still allowed to configure these values to cause this vulnerability. ### Patches Wasmtime 36.0.7, 42.0.2, and 43.0.1 have been issued to fix this bug. Users are recommended to update to these patched versions of Wasmtime. ### Workarounds All four conditions above must be met to be vulnerable to this bug, and users can work around this bug by adjusting any of the above conditions. For example it is strongly recommended that guard pages are configured for linear memories which would make this bug not applicable.

CVE-2026-34988 Affected Wasmtime Versions

3 component(s)
Fixed Versions:
36.0.742.0.243.0.1
Product / Package Ecosystem Affected Versions Fixed Version
wasmtime
crates.io
≥ 28.0.0
< 36.0.7
36.0.7
wasmtime
crates.io
≥ 37.0.0
< 42.0.2
42.0.2
wasmtime
crates.io
≥ 43.0.0
< 43.0.1
All 1 versions
43.0.0
43.0.1

References

Frequently Asked Questions

What is CVE-2026-34988?
CVE-2026-34988 is a security vulnerability in Wasmtime involving Wasmtime has data leakage between pooling allocator instances under CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer.
Which Wasmtime versions are affected?
Affected versions include releases prior to 36.0.7, 42.0.2, 43.0.1 across affected packages: wasmtime.
What version fixes CVE-2026-34988?
Upgrading to 36.0.7, 42.0.2, 43.0.1 (or the latest patched release for your respective branch) resolves the vulnerability.
Is wasmtime affected?
Yes, wasmtime is affected in releases prior to 36.0.7, 42.0.2, 43.0.1. Upgrade your dependency to 36.0.7, 42.0.2, 43.0.1 or later.
What CWE is associated with CVE-2026-34988?
CVE-2026-34988 is classified under CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer (The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.).
How can I check crates.io dependencies for CVE-2026-34988?
Run the dependency tree command: 'inspect dependencies for wasmtime'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-6wgr-89rj-399p",
  "modified" : "2026-04-10T14:40:06Z",
  "published" : "2026-04-09T20:23:58Z",
  "aliases" : [ "CVE-2026-34988" ],
  "summary" : "Wasmtime has data leakage between pooling allocator instances",
  "details" : "### Impact\n\nWasmtime's implementation of its pooling allocator contains a bug where in certain configurations the contents of linear memory can be leaked from one instance to the next. The implementation of resetting the virtual memory permissions for linear memory used the wrong predicate to determine if resetting was necessary, where the compilation process used a different predicate. This divergence meant that the pooling allocator incorrectly deduced at runtime that resetting virtual memory permissions was not necessary while compile-time determine that virtual memory could be relied upon.\n\nExposing this bug requires specific configuration values to be used. If any of these configurations are not applicable then this bug does not happen:\n\n* The pooling allocator must be in use.\n* The `Config::memory_guard_size` configuration option must be 0.\n* The `Config::memory_reservation` configuration must be less than 4GiB.\n* The pooling allocator must be configured with `max_memory_size` the same as the `memory_reservation` value.\n\nIf all of these conditions are applicable then when a linear memory is reused the VM permissions of the previous iteration are not reset. This means that the compiled code, which is assuming out-of-bounds loads will segfault, will not actually segfault and can read the previous contents of linear memory if it was previously mapped.\n\nThis represents a data leakage vulnerability between guest WebAssembly instances which breaks WebAssembly's semantics and additionally breaks the sandbox that Wasmtime provides. Wasmtime is not vulnerable to this issue with its default settings, nor with the default settings of the pooling allocator, but embeddings are still allowed to configure these values to cause this vulnerability.\n\n### Patches\n\nWasmtime 36.0.7, 42.0.2, and 43.0.1 have been issued to fix this bug. Users are recommended to update to these patched versions of Wasmtime.\n\n### Workarounds\n\nAll four conditions above must be met to be vulnerable to this bug, and users can work around this bug by adjusting any of the above conditions. For example it is strongly recommended that guard pages are configured for linear memories which would make this bug not applicable.",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "crates.io",
      "name" : "wasmtime"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "28.0.0"
      }, {
        "fixed" : "36.0.7"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "crates.io",
      "name" : "wasmtime"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "37.0.0"
      }, {
        "fixed" : "42.0.2"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "crates.io",
      "name" : "wasmtime"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "43.0.0"
      }, {
        "fixed" : "43.0.1"
      } ]
    } ],
    "versions" : [ "43.0.0" ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-6wgr-89rj-399p"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-34988"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/bytecodealliance/wasmtime"
  }, {
    "type" : "WEB",
    "url" : "https://rustsec.org/advisories/RUSTSEC-2026-0088.html"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-119" ],
    "severity" : "LOW",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-04-09T20:23:58Z",
    "nvd_published_at" : "2026-04-09T19:16:25Z"
  }
}