cloudflare / cloudflare/pingora
Never send incorrect requests to upstream servers, ever.
- Dominant language
- Rust
- Stars
- 27.4k
- Forks
- 1.7k
- Avg merge
- 6h 22m
- Merged PRs (30d)
- 3
Description
## What is the problem your feature solves, or the need it fulfills?
HTTP/1.1 has an endless history of request smuggling attacks. See .
## Describe the solution you'd like
Pingora should ensure that no matter what a client sends to it, requests sent to upstream servers _always_ strictly conform to the HTTP RFCs. This means:
- Only permitted characters in field names and values.
- No leading or trailing whitespace in field values.
- All other requirements from the standards are met, at least with regards to fields that can affect request framing.
Furthermore, there should be exactly one space between the fields of the request line and exactly one space after the colon in the fields. Trailiers should not be allowed to contain anything that might affect framing.
If Pingora is itself behind a reverse proxy, then Pingora needs to enforce these checks on _incoming_ requests, too.
## Describe alternatives you've considered
Potentially be vulnerable to request smuggling attacks in the future.
## Additional context
- https://http1mustdie.com
- https://portswigger.net/research/http1-must-die
Contributor guide
Assessment
This issue has not been assessed yet.