Lenient Parsing of Content-Length Header When Prefixed with Plus Sign
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.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
hypercrates.io | < 0.14.10 | 0.14.10 |
Affected products
3- osv-coords2 versions
< 0.5.4-r2+ 1 more
- (no CPE)range: < 0.5.4-r2
- (no CPE)range: < 0.14.10
- hyperium/hyperv5Range: < 0.14.10
Patches
Vulnerability mechanics
References
6- github.com/advisories/GHSA-f3pg-qwvg-p99cghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2021-32715ghsaADVISORY
- github.com/hyperium/hyper/commit/1fb719e0b61a4f3d911562a436a2ff05fd7cb759ghsaWEB
- github.com/hyperium/hyper/security/advisories/GHSA-f3pg-qwvg-p99cghsax_refsource_CONFIRMWEB
- github.com/rust-lang/rust/pull/28826/commits/123a83326fb95366e94a3be1a74775df4db97739ghsax_refsource_MISCWEB
- rustsec.org/advisories/RUSTSEC-2021-0078.htmlghsaWEB
News mentions
0No linked articles in our index yet.