UBUNTU-CVE-2021-32715 (CVE-2021-32715)
Vulnerability from osv_ubuntu – Published: 2021-07-07 20:15 – Updated: 2025-10-24 04:50 – Source websitehyper 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": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "librust-hyper+default-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+futures-cpupool-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+net2-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+runtime-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+tokio-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+tokio-executor-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+tokio-reactor-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+tokio-tcp-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+tokio-threadpool-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper+tokio-timer-dev",
"binary_version": "0.12.35-1"
},
{
"binary_name": "librust-hyper-dev",
"binary_version": "0.12.35-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:20.04:LTS",
"name": "rust-hyper",
"purl": "pkg:deb/ubuntu/rust-hyper@0.12.35-1?arch=source\u0026distro=focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.12.35-1"
]
}
],
"aliases": [],
"details": "hyper is an HTTP library for rust. hyper\u0027s 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\u0027t 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.",
"id": "UBUNTU-CVE-2021-32715",
"modified": "2025-10-24T04:50:20Z",
"published": "2021-07-07T20:15:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2021-32715"
},
{
"type": "REPORT",
"url": "https://github.com/hyperium/hyper/security/advisories/GHSA-f3pg-qwvg-p99c"
},
{
"type": "REPORT",
"url": "https://github.com/rust-lang/rust/pull/28826/commits/123a83326fb95366e94a3be1a74775df4db97739"
},
{
"type": "REPORT",
"url": "https://rustsec.org/advisories/RUSTSEC-2021-0078.html"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2021-32715"
}
],
"related": [],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N",
"type": "CVSS_V3"
},
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2021-32715"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.