# CVE-2026-118688: Wasmtime filesystem sandbox escape via symlink rename

Source: https://junglewise.ai/threats/cve-2026-118688-wasmtime-wasi-in-wasmtime-before-36-0-18-37-0-0-before-48-0-6  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-28. Updated: 2026-10-28  
License: CC BY 4.0 with a link back

CVE-2026-118688 · Severity: high · CVSS 7.9 · Published 2026-10-28

Wasmtime is a WebAssembly runtime that isolates untrusted guest applications in a sandbox. A bug in its filesystem implementation allows a sandboxed guest with write access to escape the sandbox on macOS and FreeBSD, read or write host directories, and potentially compromise the entire system. This is a complete sandbox bypass affecting any application running untrusted WebAssembly code.

Technologies: [Bytecode Alliance Wasmtime](https://junglewise.ai/threats/technologies/bytecode-alliance-wasmtime). Vendors: [Bytecode Alliance](https://junglewise.ai/threats/vendors/bytecode-alliance).

## Quick answers

**Is CVE-2026-118688 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-118688 being exploited in the wild.

**How severe is CVE-2026-118688?** High severity, with a CVSS score of 7.9, published 28 October 2026.

**Which products and versions are affected?** Bytecode Alliance Wasmtime <36.0.18, >=37.0.0 <48.0.6, >=49.0.0 <49.0.3.

**Is there a fix for CVE-2026-118688?** Yes: fixed in 36.0.18, 48.0.6, 49.0.3. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-118688 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-118688?** Check whether you run Bytecode Alliance Wasmtime at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in 36.0.18, 48.0.6, 49.0.3

## Technical details

The wasmtime-wasi crate strips trailing slashes from rename source paths but re-appends them before calling renameat, allowing symlinks to be followed on macOS and FreeBSD. A guest can create a relative symlink pointing outside the sandbox (e.g., symlink("../outside", "up")) and rename "up/" to move external directories into its sandbox. This affects wasmtime-wasi versions before 36.0.18, 37.0.0–48.0.5, and 49.0.0–49.0.2; Linux and Windows are not affected due to their renameat behavior.

## Affected products

- Bytecode Alliance Wasmtime <36.0.18, >=37.0.0 <48.0.6, >=49.0.0 <49.0.3

## Timeline

- 2026-10-14: disclosed
- 2026-10-28: advisory

## References

- [https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-m9f7-9w4p-gv38](https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-m9f7-9w4p-gv38)
- [https://www.vulncheck.com/advisories/wasmtime-before-36.0.18-37.0.0-before-48.0.6-and-49.0.0-before-49.0.3-sandbox-escape-via-symlink-rename](https://www.vulncheck.com/advisories/wasmtime-before-36.0.18-37.0.0-before-48.0.6-and-49.0.0-before-49.0.3-sandbox-escape-via-symlink-rename)

## Related threats

- [Wasmtime wasi-http response splitting via unvalidated headers](https://junglewise.ai/threats/cve-2026-121439-wasmtime-46-0-0-before-48-0-7-and-49-0-0-before-49-0-4-contains)
- [Wasmtime denial of service in component model stream operations](https://junglewise.ai/threats/cve-2026-119143-wasmtime-46-0-0-before-48-0-6-and-49-0-0-before-49-0-3-contains)
- [Wasmtime host panic in call_async Future drop](https://junglewise.ai/threats/cve-2026-119142-wasmtime-46-0-0-before-48-0-6-and-49-0-0-before-49-0-3-contains)
- [Wasmtime denial of service in realloc handling](https://junglewise.ai/threats/cve-2026-119141-wasmtime-46-0-0-before-48-0-6-and-49-0-0-before-49-0-3-contains)
- [Wasmtime denial of service via thread.yield in component start](https://junglewise.ai/threats/cve-2026-119140-wasmtime-46-0-0-before-48-0-6-and-49-0-0-before-49-0-3-contains)
