cap-std doesn't fully sandbox all the Windows device filenames
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- Low · Low · Low
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.
Summary
The cap-std project is organized around the eponymous `cap-std` crate, and develops libraries to make it easy to write capability-based code. cap-std's filesystem sandbox implementation on Windows blocks access to special device filenames such as "COM1", "COM2", "LPT0", "LPT1", and so on, however it did not block access to the special device filenames which use superscript digits, such as "COM¹", "COM²", "LPT⁰", "LPT¹", and so on. Untrusted filesystem paths could bypass the sandbox and access devices through those special device filenames with superscript digits, and through them provide access peripheral devices connected to the computer, or network resources mapped to those devices. This can include modems, printers, network printers, and any other device connected to a serial or parallel port, including emulated USB serial ports. The bug is fixed in #371, which is published in cap-primitives 3.4.1, cap-std 3.4.1, and cap-async-std 3.4.1. There are no known workarounds for this issue. Affected Windows users are recommended to upgrade.
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 | cap-std | before 3.4.1 | 3.4.1 | Patch available | CNA |
| — | cap-std (crates.io) | before 3.4.1 | 3.4.1 | Patch available | GHSA-hxf5-99xg-86hw |
| — | cap-async-std (crates.io) | before 3.4.1 | 3.4.1 | Patch available | GHSA-hxf5-99xg-86hw |
| — | cap-primitives (crates.io) | before 3.4.1 | 3.4.1 | Patch available | GHSA-hxf5-99xg-86hw |
- cap-std Vendorbytecodealliance Affected before 3.4.1 Fixed in 3.4.1 Patch available CNA
- cap-std (crates.io) Vendor— Affected before 3.4.1 Fixed in 3.4.1 Patch available GHSA-hxf5-99xg-86hw
- cap-async-std (crates.io) Vendor— Affected before 3.4.1 Fixed in 3.4.1 Patch available GHSA-hxf5-99xg-86hw
- cap-primitives (crates.io) Vendor— Affected before 3.4.1 Fixed in 3.4.1 Patch available GHSA-hxf5-99xg-86hw
Remediation
- Fix · CNA cap-std (bytecodealliance) Fixed in 3.4.1
- Fix · GHSA-hxf5-99xg-86hw cap-std (crates.io) Fixed in 3.4.1 Advisory →
- Fix · GHSA-hxf5-99xg-86hw cap-async-std (crates.io) Fixed in 3.4.1 Advisory →
- Fix · GHSA-hxf5-99xg-86hw cap-primitives (crates.io) Fixed in 3.4.1 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-51756
- 2026-10-03 Alias added: GHSA-hxf5-99xg-86hw
References
Other 7
- https://github.com/bytecodealliance/cap-std/security/advisories/GHSA-hxf5-99xg-86hw
- https://github.com/bytecodealliance/cap-std/pull/371
- https://github.com/bytecodealliance/cap-std/commit/dcc3818039761331fbeacbb3a40c542b65b5ebf7
- https://en.wikipedia.org/wiki/ISO/IEC_8859-1
- https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions
- https://github.com/bytecodealliance/cap-std
- https://rustsec.org/advisories/RUSTSEC-2024-0445.html
More bytecodealliance vulnerabilities
- TI-2026-85541 WAMR fast interpreter loader heap overflow via constant deduplication mismatch CVSS 4.0HIGH 8.8
- TI-2024-16741 An issue in bytecodealliance wasm-micro-runtime before v.b3f728c and fixed in commit… CVSS 3.1HIGH 8.8
- TI-2024-22658 An out-of-bound memory read vulnerability was discovered in Bytecode Alliance… CVSS 3.1HIGH 7.5
- TI-2024-18300 wasm-micro-runtime (aka WebAssembly Micro Runtime or WAMR) 06df58f is vulnerable to NULL… CVSS 3.1HIGH 7.5
- TI-2023-26034 An heap overflow vulnerability was discovered in Bytecode alliance wasm-micro-runtime… CVSS 3.1HIGH 7.5
- TI-2025-33969 WebAssembly Micro Runtime's `--addr-pool` option allows all IPv4 addresses when subnet mask is not specified CVSS 4.0MEDIUM 6.9
Sources
- CVE-2024-51756 · CVE Program
- CVE-2024-51756 · NVD
- FIRST EPSS
- GHSA-hxf5-99xg-86hw · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences