wasmtime_trap_code C API function has out of bounds write vulnerability
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 packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
wasmtimecrates.io | >= 2.0.0, < 2.0.2 | 2.0.2 |
wasmtimecrates.io | < 1.0.2 | 1.0.2 |
Affected products
1- Range: < 2.0.2
Patches
2087d9d7becf7Merge pull request from GHSA-h84q-m8rr-3v9q
1 file changed · +1 −1
crates/c-api/src/trap.rs+1 −1 modified@@ -92,7 +92,7 @@ pub extern "C" fn wasm_trap_trace(raw: &wasm_trap_t, out: &mut wasm_frame_vec_t) } #[no_mangle] -pub extern "C" fn wasmtime_trap_code(raw: &wasm_trap_t, code: &mut i32) -> bool { +pub extern "C" fn wasmtime_trap_code(raw: &wasm_trap_t, code: &mut u8) -> bool { match raw.trap.trap_code() { Some(c) => { *code = match c {
5b6d5e78de10Merge pull request from GHSA-h84q-m8rr-3v9q
1 file changed · +1 −1
crates/c-api/src/trap.rs+1 −1 modified@@ -116,7 +116,7 @@ pub(crate) fn error_trace<'a>(error: &'a Error, out: &mut wasm_frame_vec_t<'a>) } #[no_mangle] -pub extern "C" fn wasmtime_trap_code(raw: &wasm_trap_t, code: &mut i32) -> bool { +pub extern "C" fn wasmtime_trap_code(raw: &wasm_trap_t, code: &mut u8) -> bool { let trap = match raw.error.downcast_ref::<Trap>() { Some(trap) => trap, None => return false,
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
7- github.com/advisories/GHSA-h84q-m8rr-3v9qghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2022-39394ghsaADVISORY
- github.com/bytecodealliance/wasmtime/commit/087d9d7becf7422b3f872a3bcd5d97bb7ce7ff36ghsaWEB
- github.com/bytecodealliance/wasmtime/commit/5b6d5e78de106503b3b9add218bb3d2b1d63c493ghsaWEB
- github.com/bytecodealliance/wasmtime/security/advisories/GHSA-h84q-m8rr-3v9qghsaWEB
- groups.google.com/a/bytecodealliance.org/g/sec-announce/c/c1HBDDJwNPAghsaWEB
- rustsec.org/advisories/RUSTSEC-2022-0097.htmlghsaWEB
News mentions
0No linked articles in our index yet.