CVE-2021-32715 – Lenient Parsing of Content-Length Header When Prefixed with Plus Sign
https://notcve.org/view.php?id=CVE-2021-32715
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. • https://github.com/hyperium/hyper/security/advisories/GHSA-f3pg-qwvg-p99c https://github.com/rust-lang/rust/pull/28826/commits/123a83326fb95366e94a3be1a74775df4db97739 • CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') •
CVE-2021-32714 – Integer Overflow in Chunked Transfer-Encoding
https://notcve.org/view.php?id=CVE-2021-32714
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 could trigger an integer overflow when decoding chunk sizes that are too big. This allows possible data loss, or if combined with an upstream HTTP proxy that allows chunk sizes larger than hyper does, can result in "request smuggling" or "desync attacks." The vulnerability is patched in version 0.14.10. Two possible workarounds exist. • https://github.com/hyperium/hyper/security/advisories/GHSA-5h46-h7hh-c6x9 • CWE-190: Integer Overflow or Wraparound •
CVE-2021-21299 – Multiple Transfer-Encoding headers misinterprets request payload
https://notcve.org/view.php?id=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. • 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 • CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') •
CVE-2019-25009
https://notcve.org/view.php?id=CVE-2019-25009
An issue was discovered in the http crate before 0.1.20 for Rust. The HeaderMap::Drain API can use a raw pointer, defeating soundness. Se detectó un problema en la crate http versiones anteriores a 0.1.20 para Rust. La API de la función HeaderMap::Drain puede usar un puntero sin procesar, derrotando la solidez. • https://rustsec.org/advisories/RUSTSEC-2019-0034.html • CWE-415: Double Free •
CVE-2020-35863
https://notcve.org/view.php?id=CVE-2020-35863
An issue was discovered in the hyper crate before 0.12.34 for Rust. HTTP request smuggling can occur. Remote code execution can occur in certain situations with an HTTP server on the loopback interface. Se detectó un problema en la crate hyper versiones anteriores a 0.12.34 para Rust. Un tráfico no autorizado de peticiones HTTP puede ocurrir. • https://rustsec.org/advisories/RUSTSEC-2020-0008.html • CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') •