wasmtime has a panic when allocating a table exceeding the size of the host's address space
Moderate severity
GitHub Reviewed
Published
Apr 30, 2026
in
bytecodealliance/wasmtime
•
Updated May 14, 2026
Package
Affected versions
>= 30.0.0, < 36.0.8
>= 37.0.0, < 43.0.2
Patched versions
36.0.8
43.0.2
Description
Published to the GitHub Advisory Database
May 7, 2026
Reviewed
May 7, 2026
Published by the National Vulnerability Database
May 14, 2026
Last updated
May 14, 2026
Impact
Wasmtime's allocation logic for a WebAssembly table contained checked arithmetic which panicked on overflow. This overflow is possible to trigger, and thus panic, when a table with an extremely large size is allocated. This is possible with the WebAssembly memory64 proposal where tables can have sizes in the 64-bit range as opposed to the previous 32-bit range which would not overflow. The panic happens when attempting to create a very large table, such as when instantiating a WebAssembly module or component.
This bug does not affect the pooling allocator which limits tables sizes to much less than the required amount to trigger the overflow. This bug is only present for the on-demand instance allocator, which is Wasmtime's default allocator. This bug also requires the
memory64WebAssembly feature to be enabled, which is on-by-default.Panicking in the host process is considered a denial-of-service vector for Wasmtime.
Patches
Wasmtime 36.0.8, 43.0.2, and 44.0.1 have all been released which fixes this issue.
Workarounds
Embeddings can switch to using the pooling allocator to work around this issue, or the
memory64WebAssembly proposal can be disabled. Otherwise there is no workaround and users are recommended to upgrade.References