
Prova de conceito para CVE-2021-40346, demonstrando contrabando de requisições HTTP no HAProxy via estouro de inteiro, com ambiente baseado em Docker para contornar controles de acesso.
O estouro de inteiro na representação interna do cabeçalho da solicitação permite o contrabando de solicitações HTTP. Este repositório apresenta um PoC construído com docker-compose usando duas imagens docker: uma com uma versão vulnerável do HaProxy (neste caso, 2.2.16) e outra com um servidor web Flask usando Gunicorn como WSGI. Ao explorar a vulnerabilidade, somos capazes de acessar a página /admin, cujas solicitações são bloqueadas pelo HaProxy através de uma regra definida pelo usuário.
Execute os seguintes comandos no terminal para iniciar o container docker HaProxy e a imagem do servidor Flask:
docker-compose up
Envie o payload para o HaProxy:
cat payload | nc localhost 8000
Para encerrar, execute:
docker-compose down