CVE-2021-21299
CVE-2021-21299 is a medium-severity vulnerability in Hyper with a CVSS 3.x base score of 4.8. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-444.
Key facts
- Severity: Medium (CVSS 3.x base score 4.8)
- CVSS v2: 6.8
- EPSS exploit prediction: 5% (91st percentile)
- Actively exploited: Not listed in CISA KEV
- Weakness: CWE-444
- Affected product: Hyper
- Published:
- Last modified:
Description
hyper is an open-source HTTP library for Rust (crates.io). In hyper from version 0.12.0 and before versions 0.13.10 and 0.14.3 there is a vulnerability that can enable a request smuggling attack. The HTTP server code had a flaw that incorrectly understands some requests with multiple transfer-encoding headers to have a chunked payload, when it should have been rejected as illegal. This combined with an upstream HTTP proxy that understands the request payload boundary differently can result in "request smuggling" or "desync attacks". To determine if vulnerable, all these things must be true: 1) Using hyper as an HTTP server (the client is not affected), 2) Using HTTP/1.1 (HTTP/2 does not use transfer-encoding), 3) Using a vulnerable HTTP proxy upstream to hyper. If an upstream proxy correctly rejects the illegal transfer-encoding headers, the desync attack cannot succeed. If there is no proxy upstream of hyper, hyper cannot start the desync attack, as the client will repair the headers before forwarding. This is fixed in versions 0.14.3 and 0.13.10. As a workaround one can take the following options: 1) Reject requests that contain a `transfer-encoding` header, 2) Ensure any upstream proxy handles `transfer-encoding` correctly.
Frequently asked questions
- What is CVE-2021-21299?
- hyper is an open-source HTTP library for Rust (crates.io). In hyper from version 0.12.0 and before versions 0.13.10 and 0.14.3 there is a vulnerability that can enable a request smuggling attack. The HTTP server code had a flaw that incorrectly understands some requests with multiple transfer-encoding headers to have a chunked payload, when it should have been rejected as illegal. This combined with an upstream HTTP proxy that understands the request payload boundary differently can result in "request smuggling" or "desync attacks". To determine if vulnerable, all these things must be true: 1) Using hyper as an HTTP server (the client is not affected), 2) Using HTTP/1.1 (HTTP/2 does not use transfer-encoding), 3) Using a vulnerable HTTP proxy upstream to hyper. If an upstream proxy correctly rejects the illegal transfer-encoding headers, the desync attack cannot succeed. If there is no proxy upstream of hyper, hyper cannot start the desync attack, as the client will repair the headers before forwarding. This is fixed in versions 0.14.3 and 0.13.10. As a workaround one can take the following options: 1) Reject requests that contain a `transfer-encoding` header, 2) Ensure any upstream proxy handles `transfer-encoding` correctly.
- How severe is CVE-2021-21299?
- CVE-2021-21299 has a CVSS 3.x base score of 4.8, rated medium severity. It is exploitable over network with high attack complexity, requires no privileges and no user interaction. Impact on confidentiality is low, integrity low, and availability none.
- Is CVE-2021-21299 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 5% (91st percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2021-21299?
- CVE-2021-21299 affects Hyper. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2021-21299?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround.
- When was CVE-2021-21299 published?
- CVE-2021-21299 was published on 2021-02-11 and last updated on 2026-06-17.
References
- https://crates.io/crates/hyper
- https://github.com/hyperium/hyper/commit/8f93123efef5c1361086688fe4f34c83c89cec02
- https://github.com/hyperium/hyper/security/advisories/GHSA-6hfq-h8hq-87mf
- https://portswigger.net/research/http-desync-attacks-request-smuggling-reborn
- https://rustsec.org/advisories/RUSTSEC-2021-0020.html
Affected products (1)
- cpe:2.3:a:hyper:hyper:*:*:*:*:*:rust:*:*
More vulnerabilities in Hyper
- CVE-2020-35863 — Critical (CVSS 9.8): An issue was discovered in the hyper crate before 0.12.34 for Rust. HTTP request smuggling can occur. Remote code…
- CVE-2023-26964 — High (CVSS 7.5): An issue was discovered in hyper v0.13.7. h2-0.2.4 Stream stacking occurs when the H2 component processes HTTP2…
- CVE-2022-31394 — High (CVSS 7.5): Hyperium Hyper before 0.14.19 does not allow for customization of the max_header_list_size method in the H2 third-party…
- CVE-2021-32714 — Medium (CVSS 5.9): hyper is an HTTP library for Rust. In versions prior to 0.14.10, hyper's HTTP server and client code had a flaw that…
- CVE-2017-18587 — Medium (CVSS 5.3): An issue was discovered in the hyper crate before 0.9.18 for Rust. It mishandles newlines in headers.
- CVE-2016-10932 — Medium (CVSS 4.8): An issue was discovered in the hyper crate before 0.9.4 for Rust on Windows. There is an HTTPS man-in-the-middle…
Other CWE-444 (HTTP Request/Response Smuggling) vulnerabilities
- CVE-2025-1867 — Critical (CVSS 10.0): Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in ithewei libhv allows…
- CVE-2022-22536 — Critical (CVSS 10.0): SAP NetWeaver Application Server ABAP, SAP NetWeaver Application Server Java, ABAP Platform, SAP Content Server 7.53…
- CVE-2018-3907 — Critical (CVSS 10.0): An exploitable vulnerability exists in the REST parser of video-core's HTTP server of the Samsung SmartThings Hub…
- CVE-2025-55315 — Critical (CVSS 9.9): Inconsistent interpretation of http requests ('http request/response smuggling') in ASP.NET Core allows an authorized…
- CVE-2020-15049 — Critical (CVSS 9.9): An issue was discovered in http/ContentLengthInterpreter.cc in Squid before 4.12 and 5.x before 5.0.3. A Request…
- CVE-2026-13763 — Critical (CVSS 9.8): Inconsistent interpretation of HTTP/2 requests in AWS Application Load Balancer with AWS WAF enabled might allow remote…
Browse all CWE-444 (HTTP Request/Response Smuggling) vulnerabilities →