
HTTP request smuggling exploits disagreements between a front-end server (such as a load balancer or CDN) and a back-end server about where one request ends and the next begins. An attacker can "smuggle" a hidden request that the back end processes as part of another user's request.
Requests can declare their length with Content-Length or Transfer-Encoding: chunked. If the front end trusts one header and the back end trusts the other, a single crafted request is split differently by each. Variants include CL.TE, TE.CL, CL.0 and HTTP/2 downgrade attacks.
A front-end server and back-end server disagree on where a request ends, usually because one trusts Content-Length and the other trusts Transfer-Encoding.
End-to-end HTTP/2 removes the classic ambiguity, but downgrading HTTP/2 to HTTP/1.1 at a proxy can introduce new smuggling variants.
Try Vooki Pro free for 7 days
Smuggling bugs live between your servers, where manual testing rarely looks. The trial unlocks every feature for 7 days, and scanning runs on your own machine.
Related: Insecure deserialization · Open redirect vulnerabilities