Wasmtime segfault or unused out-of-sandbox load with f64.copysign operator on x86-64
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-125 and the CVSS impact.
Summary
Wasmtime is a runtime for WebAssembly. Starting in version 29.0.0 and prior to version 36.0.5, 40.0.3, and 41.0.1, on x86-64 platforms with AVX, Wasmtime's compilation of the `f64.copysign` WebAssembly instruction with Cranelift may load 8 more bytes than is necessary. When signals-based-traps are disabled this can result in a uncaught segfault due to loading from unmapped guard pages. With guard pages disabled it's possible for out-of-sandbox data to be loaded, but unless there is another bug in Cranelift this data is not visible to WebAssembly guests. Wasmtime 36.0.5, 40.0.3, and 41.0.1 have been released to fix this issue. Users are recommended to upgrade to the patched versions of Wasmtime. Other affected versions are not patched and users should updated to supported major version instead. This bug can be worked around by enabling signals-based-traps. While disabling guard pages can be a quick fix in some situations, it's not recommended to disabled guard pages as it is a key defense-in-depth measure of Wasmtime.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| bytecodealliance | wasmtime | 29.0.0 to before 36.0.5; 37.0.0 to before 40.0.3; = 41.0.0 | 36.0.5, 40.0.3 | Patch available | CNA |
| — | wasmtime (crates.io) | 29.0.0 to before 36.0.5 | 36.0.5 | Patch available | GHSA-vc8c-j3xm-xj73 |
| — | wasmtime (crates.io) | 37.0.0 to before 40.0.3 | 40.0.3 | Patch available | GHSA-vc8c-j3xm-xj73 |
| — | wasmtime (crates.io) | 41.0.0 to before 41.0.1 | 41.0.1 | Patch available | GHSA-vc8c-j3xm-xj73 |
- wasmtime Vendorbytecodealliance Affected 29.0.0 to before 36.0.5; 37.0.0 to before 40.0.3; = 41.0.0 Fixed in 36.0.5, 40.0.3 Patch available CNA
- wasmtime (crates.io) Vendor— Affected 29.0.0 to before 36.0.5 Fixed in 36.0.5 Patch available GHSA-vc8c-j3xm-xj73
- wasmtime (crates.io) Vendor— Affected 37.0.0 to before 40.0.3 Fixed in 40.0.3 Patch available GHSA-vc8c-j3xm-xj73
- wasmtime (crates.io) Vendor— Affected 41.0.0 to before 41.0.1 Fixed in 41.0.1 Patch available GHSA-vc8c-j3xm-xj73
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:bytecodealliance:wasmtime:*:*:*:*:*:rust:*:* | 29.0.0 to before 36.0.5; 40.0.0 to before 40.0.3; 41.0.0 to before 41.0.1 | Vulnerable | bytecodealliance |
- cpe:2.3:a:bytecodealliance:wasmtime:*:*:*:*:*:rust:*:* Versions 29.0.0 to before 36.0.5; 40.0.0 to before 40.0.3; 41.0.0 to before 41.0.1 Vulnerable ·bytecodealliance
Remediation
- Fix · CNA wasmtime (bytecodealliance) Fixed in 36.0.5, 40.0.3
- Fix · GHSA-vc8c-j3xm-xj73 wasmtime (crates.io) Fixed in 36.0.5 Advisory →
- Fix · GHSA-vc8c-j3xm-xj73 wasmtime (crates.io) Fixed in 40.0.3 Advisory →
- Fix · GHSA-vc8c-j3xm-xj73 wasmtime (crates.io) Fixed in 41.0.1 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-24116
- 2026-10-03 Alias added: GHSA-vc8c-j3xm-xj73
References
Patch 4
- https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-vc8c-j3xm-xj73
- https://github.com/bytecodealliance/wasmtime/commit/728fa07184f8da2a046f48ef9b61f869dce133a6
- https://github.com/bytecodealliance/wasmtime/commit/799585fc362fcb991de147dd1a9f2ba0861ed440
- https://github.com/bytecodealliance/wasmtime/commit/ac92d9bb729ad3a6d93f0724c4c33a0c4a9c0227
Advisory 2
More bytecodealliance Wasmtime vulnerabilities
- TI-2026-21632 Wasmtime is vulnerable to panic when dropping a `[Typed]Func::call_async` future CVSS 4.0MEDIUM 6.9
- TI-2023-11636 Guest-controlled out-of-bounds read/write on x86_64 in wasmtime CVSS 3.1CRITICAL 10.0
- TI-2022-18765 Wasmtime vulnerable to data leakage between instances in the pooling allocator CVSS 3.1HIGH 8.6
- TI-2022-08604 Use after free in Wasmtime CVSS 3.1CRITICAL 9.8
- TI-2022-18766 wasmtime_trap_code C API function has out of bounds write vulnerability CVSS 3.1CRITICAL 9.8
- TI-2026-27209 Wasmtime with Winch compiler backend on aarch64 may allow a sandbox-escaping memory access CVSS 4.0CRITICAL 9.0
Sources
- CVE-2026-24116 · CVE Program
- CVE-2026-24116 · NVD
- FIRST EPSS
- GHSA-vc8c-j3xm-xj73 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-24116 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences