RUSTSEC-2026-0223: Wasmtime: Preemption and traps during bulk operations enable breaking internal VM state

Published Oct 2, 2026
·
Updated

Wasmtime is a runtime for WebAssembly. From 46.0.0 until 46.0.2 and 47.0.3, fuel and epoch preemption checks inside bulk operations including memory.copy, table.grow, and array.copy can expose invalid intermediate state when an embedder mutates a Store in Store::epochdeadlinecallback or continues using a Store after cancellation or a trap. A cancelled non-nullable table growth can leave null elements, linear-memory growth during memory.copy can invalidate retained raw pointers, and callback-triggered garbage collection during array.copy can invalidate GC pointers, resulting in a crash, invalid memory access, or GC heap corruption. Embeddings whose callbacks only access the host data in Store<T>, and embeddings that discard a Store after timeout or epoch deadline, are not affected. This issue is fixed in versions 46.0.2 and 47.0.3.

Affected Software

1 affected component
Wasmtime Wasmtime>=46.0.0<46.0.2, >=47.0.0<47.0.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Wasmtime to a version that resolves this vulnerability.

    Fixed in 46.0.2
  2. Upgrade

    Upgrade Wasmtime to a version that resolves this vulnerability.

    Fixed in 47.0.3

Event History

Oct 2, 2026
CVE Published
via OSV·05:37 PM
Data Sourced
via OSV·05:37 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which embeddings are exposed to this issue?

Embeddings are affected when fuel or epoch preemption can occur during bulk operations and code mutates the Store from Store::epoch_deadline_callback or continues using the Store after cancellation or a trap. Embeddings whose callbacks access only the host data in Store<T>, or that discard the Store after a timeout or epoch deadline, are not affected.

2

What conditions are needed for exploitation?

An attacker must be able to trigger affected bulk operations, such as memory.copy, table.grow, or array.copy, while fuel or epoch preemption checks occur. Exploitation also depends on the embedding handling the resulting callback, cancellation, or trap in a way that mutates or reuses the Store.

3

What can be done if an immediate upgrade is not possible?

Do not mutate the Store from Store::epoch_deadline_callback; limit callback access to the host data in Store<T>. After a timeout, epoch deadline, cancellation, or trap, discard the Store rather than continuing to use it.

4

How can an application determine whether it may be affected?

Review whether it uses Wasmtime versions from 46.0.0 up to before 46.0.2, or version 47.0.3 before its fix, and whether fuel or epoch preemption is enabled. Then check whether epoch-deadline callbacks mutate the Store or whether a Store is reused after cancellation or a trap.

5

Which versions contain the fix?

The issue is fixed in Wasmtime 46.0.2 and 47.0.3.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203