Vulnerability · Published Jul 7, 2021 · Assigned by GitHub_M
CVE-2021-32715Lenient Parsing of Content-Length Header When Prefixed with Plus Sign
Low 3.1
In plain English
A low-severity security flaw in hyper from hyperium. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 1.1% (higher than 66% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
hyper is an HTTP library for rust. hyper's HTTP/1 server code had a flaw that incorrectly parses and accepts requests with a `Content-Length` header with a prefixed plus sign, when it should have been rejected as illegal. This combined with an upstream HTTP proxy that doesn't parse such `Content-Length` headers, but forwards them, can result in "request smuggling" or "desync attacks". The flaw exists in all prior versions of hyper prior to 0.14.10, if built with `rustc` v1.5.0 or newer. The vulnerability is patched in hyper version 0.14.10. Two workarounds exist: One may reject requests manually that contain a plus sign prefix in the `Content-Length` header or ensure any upstream proxy handles `Content-Length` headers with a plus sign prefix.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | rust-hyper | 0.14.19-1 | DEBIAN-CVE-2021-32715 |
| Debian:13 | rust-hyper | 0.14.19-1 | DEBIAN-CVE-2021-32715 |
| Debian:14 | rust-hyper | 0.14.19-1 | DEBIAN-CVE-2021-32715 |
Affected products (as reported)
Weakness: CWE-444 · Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N