Wasmtime can panic when adding excessive fields to a `wasi:http/types.fields` instance
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 24.0.6, 36.0.6, 40.0.4, 41.0.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
Wasmtime is a runtime for WebAssembly. Prior to versions 24.0.6, 36.0.6, 4.0.04, 41.0.4, and 42.0.0, Wasmtime's implementation of the `wasi:http/types.fields` resource is susceptible to panics when too many fields are added to the set of headers. Wasmtime's implementation in the `wasmtime-wasi-http` crate is backed by a data structure which panics when it reaches excessive capacity and this condition was not handled gracefully in Wasmtime. Panicking in a WASI implementation is a Denial of Service vector for embedders and is treated as a security vulnerability in Wasmtime. Wasmtime 24.0.6, 36.0.6, 40.0.4, 41.0.4, and 42.0.0 patch this vulnerability and return a trap to the guest instead of panicking. There are no known workarounds at this time. Embedders are encouraged to update to a patched version of Wasmtime.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- bytecodealliance wasmtime
fixed in 24.0.6; From 25.0.0 · fixed in 36.0.6; From 37.0.0 · fixed in 40.0.4; From 41.0.0 · fixed in 41.0.4
- wasmtimecrates.io
fixed in 24.0.6
- wasmtimecrates.io
From 25.0.0 · fixed in 36.0.6
- wasmtimecrates.io
From 37.0.0 · fixed in 40.0.4
- wasmtimecrates.io
From 0.0.0-0 · fixed in 24.0.6; From 25.0.0 · fixed in 36.0.6; From 37.0.0 · fixed in 40.0.4; From 41.0.0 · fixed in 41.0.4