Description
Wasmtime is a standalone runtime for WebAssembly. Prior to version 2.0.2, there is a bug in Wasmtime's C API implementation where the definition of the `wasmtime_trap_code` does not match its declared signature in the `wasmtime/trap.h` header file. This discrepancy causes the function implementation to perform a 4-byte write into a 1-byte buffer provided by the caller. This can lead to three zero bytes being written beyond the 1-byte location provided by the caller. This bug has been patched and users should upgrade to Wasmtime 2.0.2. This bug can be worked around by providing a 4-byte buffer casted to a 1-byte buffer when calling `wasmtime_trap_code`. Users of the `wasmtime` crate are not affected by this issue, only users of the C API function `wasmtime_trap_code` are affected.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| bytecodealliance | wasmtime | < 2.0.2 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 24.04 LTS | thunderbird | No fix yet | — |
| Ubuntu 22.04 LTS | mozjs78 +2 | No fix yet | — |
| Ubuntu 20.04 LTS | mozjs52 +1 | No fix yet | — |
| Ubuntu 18.04 LTS | mozjs38 +1 | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | wasmtime | >= 2.0.0, < 2.0.2 | 2.0.2 | GHSA-h84q-m8rr-3v9q |
| crates.io | wasmtime | < 1.0.2 | 1.0.2 | GHSA-h84q-m8rr-3v9q |
| crates.io | wasmtime | >= 0.0.0-0, < 1.0.2 · >= 2.0.0, < 2.0.2 | 1.0.2, 2.0.2 | RUSTSEC-2022-0097 |