Description
hyper is an HTTP library for Rust. In versions prior to 0.14.10, hyper's HTTP server and client code had a flaw that could trigger an integer overflow when decoding chunk sizes that are too big. This allows possible data loss, or if combined with an upstream HTTP proxy that allows chunk sizes larger than hyper does, can result in "request smuggling" or "desync attacks." The vulnerability is patched in version 0.14.10. Two possible workarounds exist. One may reject requests manually that contain a `Transfer-Encoding` header or ensure any upstream proxy rejects `Transfer-Encoding` chunk sizes greater than what fits in 64-bit unsigned integers.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| hyperium | hyper | < 0.14.10 | — |
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.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | rust-hyper | 0.14.19-1 | — |
| Debian 13 | rust-hyper | 0.14.19-1 | — |
| Debian 12 | rust-hyper | 0.14.19-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 20.04 LTS | rust-hyper | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | hyper | < 0.14.10 | 0.14.10 | GHSA-5h46-h7hh-c6x9 |
| crates.io | hyper | >= 0.0.0-0, < 0.14.10 | 0.14.10 | RUSTSEC-2021-0079 |