Desync Impulsionado por CRLF: Quando a Injeção de Cabeçalho se Transforma em Contrabando de Solicitação
Técnicas e Métodos de Ataque2026-08-28, 12:32
Desync Impulsionado por CRLF: Quando a Injeção de Cabeçalho se Transforma em Contrabando de Solicitação
Os pesquisadores Tom Stacey (PortSwigger) e Tobia Righi (TurtleSec) apresentaram sua pesquisa, Ataques de Desync Impulsionados por CRLF. A principal conclusão: a Injeção de Cabeçalho HTTP é frequentemente subestimada — a capacidade de injetar CRLF pode escalar para desync HTTP completo / contrabando de solicitação, afetando outros usuários.
Uma fonte comum do problema é usar
$uri dentro de proxy_pass no Nginx. O servidor normaliza o caminho da solicitação e decodifica caracteres codificados, incluindo sequências CRLF (%0d%0a), permitindo que sejam injetados na solicitação encaminhada upstream e dando ao atacante controle sobre sua estrutura.De CRLF a desync
Se dois CRLFs consecutivos puderem ser injetados, a solicitação original pode ser dividida em duas, permitindo o Envenenamento de Fila de Respostas (RQP): o servidor perde o controle de qual resposta pertence a qual solicitação, potencialmente fazendo com que respostas destinadas a outros usuários sejam enviadas ao atacante.
Em um CDN, os pesquisadores acionaram RQP dentro da infraestrutura do próprio provedor, capturando eventualmente solicitações de outros usuários, incluindo cookies de sessão e tokens de autenticação para milhares de aplicativos hospedados no CDN. Em um grande provedor de telecomunicações, uma Injeção de Cabeçalho semelhante permitiu roubar tokens de acesso da infraestrutura interna e rendeu uma recompensa de $2.200.
Mas mesmo que duas sequências CRLF consecutivas sejam bloqueadas, injetar um único cabeçalho pode ser suficiente. Ao adicionar
Transfer-Encoding: chunked a uma solicitação com Content-Length, os pesquisadores alcançaram um desync CL.TE clássico.
Em uma loja de roupas popular, a técnica permitiu substituir os endereços de e-mail de usuários ativos e assumir suas contas. No domínio de um grande fabricante de smartphones, o desync foi escalado para XSS e depois para assumir contas.Desync a partir do navegador
Uma descoberta chave é que a grande maioria dos ataques de desync impulsionados por CRLF pode ser acionada através de
fetch() ou até mesmo navegação básica no navegador. Isso desloca a execução para o navegador da vítima e abre oportunidades de exploração para desyncs bloqueados por conexão e por IP, que normalmente impedem ataques entre usuários.
Os pesquisadores também mostraram como o desync impulsionado por CRLF pode tornar prático o worm de desync anteriormente teorizado por James Kettle: XSS no navegador de uma vítima pode usar fetch() para acionar o mesmo desync contra outros usuários, criando um ataque auto-replicante. Em outros cenários, combinar divisão de solicitação com HEAD e Range tornou possível alcançar XSS, extrair tokens de autenticação e até tornar um cookie de sessão HttpOnly acessível ao JavaScript.A Injeção de Cabeçalho HTTP não deve ser automaticamente considerada uma vulnerabilidade de baixo impacto. Uma injeção de CRLF pode servir como base para divisão de solicitação, desync CL.TE/0.CL, RQP, XSS e comprometimento de contas de usuário.
Fornecedor
Produto