Bypass de WAF em HTTP/2: a camada de proteção encaminha a solicitação antes mesmo de ver o corpo

Diyan Apostolov testou seis proxies reversos e encontrou bypasses de WAF em cinco deles — todos enraizados na arquitetura HTTP/2.
No HTTP/1.1, cabeçalhos e corpo são transmitidos juntos, permitindo que um WAF inspecione toda a solicitação antes de tomar uma decisão. No HTTP/2, eles são enviados separadamente: primeiro quadros HEADERS, depois quadros DATA contendo o corpo.
Um atacante pode atrasar intencionalmente o quadro DATA. Se o WAF operar como um serviço externo, o proxy pode solicitar um veredito imediatamente após receber os cabeçalhos, sem esperar pelo corpo. O WAF vê uma solicitação efetivamente vazia e retorna "allow". O proxy então encaminha a solicitação ao backend, enquanto o corpo chega mais tarde.
Como resultado, a aplicação pode começar a processar a solicitação antes que o WAF tenha inspecionado a carga útil.

T+0 ms     HEADERS received
T+1 ms     WAF sees only headers → allow
T+500 ms   DATA frame with payload arrives
T+501 ms   request already forwarded to backend
T+502 ms   WAF finally sees the body → block
O artigo também examina outras classes de bypass:
• a carga útil é colocada além dos primeiros 64 KB do corpo da solicitação, que o WAF não inspeciona; • a solicitação passa por um serviço ForwardAuth que valida apenas cabeçalhos e nunca vê o corpo; • o WAF e o backend analisam URLs de forma diferente, então um caminho é inspecionado enquanto outro é processado; • o WAF e a aplicação analisam JSON de forma diferente, permitindo que dados perigosos contornem a filtragem.
Produto
Forwardauth
Http/1.1
Http/2
Json
Waf
Publicado
2026-06-08, 14:47