Description
The wasmtime-wasi-http p2 implementation in Wasmtime before 36.0.20, 37.0.0 before 48.0.8, 49.0.0 before 49.0.5, and 50.0.0 before 50.0.1 can send conflicting content-length headers, or ones not matching the body, in outgoing requests. A guest that reuses a received response's headers resource to send a bodyless request can enable request smuggling against non-compliant servers, potentially bypassing embedder destination access controls.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| bytecodealliance | wasmtime | 37.0.0 <48.0.8 | — |
| bytecodealliance | wasmtime | 50.0.0 <50.0.1 | — |
| bytecodealliance | wasmtime | 0 <36.0.20 | — |
| bytecodealliance | wasmtime | 49.0.0 <49.0.5 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | rust-wasmtime | No fix yet | — |
| Ubuntu 26.04 LTS | rust-wasmtime | No fix yet | — |
| Ubuntu 24.04 LTS | rust-wasmtime | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | wasmtime-wasi-http | >= 0.0.0-0, < 36.0.20 · >= 37.0.0, < 48.0.8 · >= 49.0.0, < 49.0.5 · >= 50.0.0, < 50.0.1 | 36.0.20, 48.0.8, 49.0.5, 50.0.1 | RUSTSEC-2026-0421 |