ubuntu-cve-2021-32715
Vulnerability from osv_ubuntu
Published
2021-07-07 20:15
Modified
2025-10-24 04:50
Summary
Details
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.
Severity
5.3 (Medium)
N/A (UNKNOWN)
References
{
"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"
]
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
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.
Loading…
Loading…