VYPR
researchPublished Aug 19, 2025· Updated May 20, 2026· 1 source

PortSwigger Research: How to Distinguish HTTP Pipelining from Request Smuggling

PortSwigger Research publishes a detailed guide to help penetration testers and bug bounty hunters differentiate HTTP pipelining from genuine request smuggling vulnerabilities.

PortSwigger Research has released a technical deep-dive aimed at helping security professionals distinguish between HTTP pipelining and actual HTTP request smuggling vulnerabilities. The post, triggered by the publication of http1mustdie.com and subsequent confusion among researchers, addresses a common source of false positives in web application testing.

The core issue is that many proof-of-concept attacks that appear to demonstrate request smuggling actually rely on HTTP connection reuse—a normal behavior where multiple requests are sent over a single TCP connection. The article explains that tools like Turbo Intruder, Burp Intruder with connection reuse enabled, and Burp Repeater's 'Send group in sequence (single connection)' can produce misleading results. When a PoC only works under connection reuse, it is likely a false positive.

However, the research identifies three valid vulnerability classes where connection reuse is genuinely required: connection-locked request smuggling, connection state attacks (which are technically not request smuggling), and client-side desync attacks. For connection-locked smuggling, a front-end server only reuses the upstream connection if the client connection was reused, creating a real but harder-to-exploit vulnerability. The article provides guidance on confirming such cases, such as sending a request over HTTP/2 that triggers a nested HTTP/1 response.

To assist practitioners, PortSwigger has released a new Burp Suite extension called HTTP Hacker, which exposes low-level HTTP behavior, and a Custom Action called 'Smuggling or pipelining?' that can be installed into Burp Repeater. These tools allow testers to inspect the raw TCP/TLS socket stream and verify whether a desync is occurring between the client and server or between a front-end and back-end.

The post also outlines a pathway for validating connection-locked request smuggling: first, check for a cache layer and attempt cache poisoning; if no cache exists, look for input reflection gadgets to disclose internal HTTP headers; then attempt to bypass front-end security controls. The article emphasizes that proving real impact—beyond receiving a surprising response—is essential for a valid vulnerability report.

This research is particularly timely given the ongoing prevalence of HTTP request smuggling as an attack vector. By clarifying the boundary between benign connection reuse and exploitable desync conditions, PortSwigger aims to reduce noise in bug bounty programs and penetration tests, allowing researchers to focus on genuine vulnerabilities.

Synthesized by Vypr AI