Skip to main content
← All vulnerabilities
CVE-2021-32715RUSTSEC-2021-0078GHSA-F3PG-QWVG-P99C

Lenient Parsing of Content-Length Header When Prefixed with Plus Sign

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.14.10
None on Exploit-DB, Metasploit or GitHub

Summary

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.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • hyperium hyper

    fixed in 0.14.10

  • hypercrates.io

    From 0.0.0-0 · fixed in 0.14.10

  • hypercrates.io

    fixed in 0.14.10

References 2

GitHub · hyperium/hyper

GitHub · rust-lang/rust