Wasmi is a WebAssembly interpreter focused on constrained and embedded systems. In versions 0.41.0, 0.41.1, 0.42.0 through 0.47.1, 0.50.0 through 0.51.2 and 1.0.0, Wasmis linear memory implementation leads to a Use After Free vulnerability, triggered by a WebAssembly module under certain memory growth conditions. This issue potentially leads to memory corruption, information disclosure, or code execution. This issue is fixed in versions 0.41.2, 0.47.1, 0.51.3 and 1.0.1. To workaround this issue, consider limiting the maximum linear memory sizes where feasible.
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory “belongs” to the code that operates on the new pointer.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Wasmi | Wasmi-labs | 0.41.0 (including) | 0.41.2 (excluding) |
| Wasmi | Wasmi-labs | 0.47.0 (including) | 0.47.1 (excluding) |
| Wasmi | Wasmi-labs | 0.51.0 (including) | 0.51.3 (excluding) |
| Wasmi | Wasmi-labs | 1.0.0 (including) | 1.0.0 (including) |