GHSA-h3qr-rq2j-74w4 CVE-2020-35863 RUSTSEC-2020-0008
HTTP Request Smuggling in hyper
- Severity
- 9.8 / 10
- Critical · CVSS 3.1
- Exploit chance (EPSS)
- 2.97%
- Chance of exploitation in the next 30 days. Higher than 87.26% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
- Fix
0.12.34- Upgrade hyper to this version or later
Description
Vulnerable versions of hyper allow GET requests to have bodies, even if there is no Transfer-Encoding or Content-Length header. As per the HTTP 1.1 specification, such requests do not have bodies, so the body will be interpreted as a separate HTTP request.
This allows an attacker who can control the body and method of an HTTP request made by hyper to inject a request with headers that would not otherwise be allowed, as demonstrated by sending a malformed HTTP request from a Substrate runtime. This allows bypassing CORS restrictions. In combination with other vulnerabilities, such as an exploitable web server listening on loopback, it may allow remote code execution.
The flaw was corrected in hyper version 0.12.34.
Affected versions
crates.io
| Package | Vulnerable | Fixed in |
|---|---|---|
| hyper | >= 0.11.0, < 0.12.34 |
0.12.34 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
hyper crates.io → 0.12.34
- cargo
cargo update -p hyper --precise 0.12.34
Severity breakdown
CVSS 3.1 9.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Weakness
CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.
How to prevent it
- Implementation: Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
- Implementation: Use only SSL communication.
- Implementation: Terminate the client session after each request.
- System Configuration: Turn all pages to non-cacheable.
References
Advisories
Packages
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-f67m-9j94-qv9j Parser creates invalid uninitialized value | High | Also affects hyper |
| GHSA-f3pg-qwvg-p99c Lenient Parsing of Content-Length Header When Prefixed with Plus Sign | Low | Also affects hyper |
| GHSA-5h46-h7hh-c6x9 Integer Overflow in Chunked Transfer-Encoding | Medium | Also affects hyper |
| GHSA-6hfq-h8hq-87mf HTTP Request Smuggling in hyper | Medium | Also affects hyper |
| GHSA-q89x-f52w-6hj2 Headers containing newline characters can split messages in hyper | Medium | Also affects hyper |
| GHSA-9xjr-m6f3-v5wm HTTPS MitM vulnerability due to lack of hostname verification | Medium | Also affects hyper |
| EEF-CVE-2026-114216 Chunk extensions accept bare LF and CR, enabling request smuggling in Bandit | Not rated yet | Same weakness, CWE-444 |
| RUSTSEC-2026-0388 Pingora HTTP/2 :authority and Host header mismatch enables cache poisoning and host-based access control bypass | Not rated yet | Same weakness, CWE-444 |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor