CVE-2021-32715

Lenient Parsing of Content-Length Header When Prefixed with Plus Sign

State
Published
Severity
3.1 Low
Published
Jul 7, 2021
Updated
Aug 3, 2024
Reserved
May 12, 2021

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.13.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:NGitHub_M

Weaknesses

  • CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling')

Affected Products

ProductVersions
hyperhyperium
  • < 0.14.10Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.