Encontrada vulnerabilidade no HAProxy permite ataque crítico

Uma vulnerabilidade crítica de segurança foi divulgada no HAProxy , um balanceador de carga de código aberto amplamente usado e servidor proxy, que poderia ser abusado por um adversário para possivelmente contrabandear solicitações HTTP, resultando em acesso não autorizado a dados confidenciais e execução de comandos arbitrários, abrindo efetivamente a porta para uma série de ataques.

Rastreada como CVE-2021-40346 , a vulnerabilidade Integer Overflow tem uma classificação de gravidade de 8,6 no sistema de pontuação CVSS e foi retificada nas versões 2.0.25, 2.2.17, 2.3.14 e 2.4.4 do HAProxy.

O contrabando de solicitações HTTP, como o nome indica, é um ataque de aplicativo da web que falsifica a maneira como um site processa sequências de solicitações HTTP recebidas de mais de um usuário. Também chamada de dessincronização HTTP, a técnica aproveita a análise de inconsistências em como os servidores front-end e back-end processam as solicitações dos remetentes.

Os servidores front-end são normalmente balanceadores de carga ou proxies reversos usados ​​por sites para gerenciar uma cadeia de solicitações HTTP de entrada em uma única conexão e encaminhá-los para um ou mais servidores back-end. Portanto, é crucial que as solicitações sejam processadas corretamente em ambas as extremidades para que os servidores possam determinar onde uma solicitação termina e a próxima começa, uma falha que pode resultar em um cenário em que conteúdo malicioso anexado a uma solicitação é adicionado ao início de o próximo pedido.

Em outras palavras, devido a um problema decorrente de como os servidores front-end e back-end funcionam no início e no final de cada solicitação usando os cabeçalhos Content-Length e Transfer-Encoding , o fim de uma solicitação HTTP não autorizada é calculado incorretamente, deixando o conteúdo malicioso não processado por um servidor, mas prefixado ao início da próxima solicitação de entrada na cadeia.

“O ataque foi possível utilizando uma vulnerabilidade de estouro de número inteiro que permitiu atingir um estado inesperado no HAProxy ao analisar uma solicitação HTTP – especificamente – na lógica que lida com cabeçalhos de comprimento de conteúdo”, disseram pesquisadores da JFrog Security em um relatório publicado em Terça.

Em um cenário de ataque potencial do mundo real, a falha pode ser usada para acionar um ataque de contrabando de solicitação HTTP com o objetivo de contornar as regras ACL (também conhecidas como lista de controle de acesso) definidas pelo HAProxy , que permite aos usuários definir regras personalizadas para bloquear solicitações maliciosas .

Após a divulgação responsável, o HAProxy corrigiu a fraqueza adicionando verificações de tamanho para os comprimentos de nome e valor. “Como medida de mitigação, é suficiente para verificar que nenhum cabeçalho de mais de um desses [content-length] está presente em qualquer mensagem,” Willy Tarreau, do criador e desenvolvedor líder HAProxy, observou em um GitHub commit empurrado em 3 de setembro.

Os clientes que não podem atualizar para as versões mencionadas do software são recomendados para adicionar o snippet abaixo à configuração do proxy para mitigar os ataques –

solicitação de http negada se {req.hdr_cnt (content-length) gt 1}

resposta http negada if {res.hdr_cnt (content-length) gt 1}

Fonte: https://thehackernews.com/