PT-2021-15453 · Unknown · Go-Proxyproto
Iestyn Elfick
·
Publicado
2021-03-08
·
Atualizado
2021-05-18
·
CVE-2021-23351
CVSS v3.1
4.4
Média
| Vetor | AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H |
Nome do software vulnerável e versões afetadas
github.com/pires/go-proxyproto versões anteriores à 0.5.0
Descrição
A vulnerabilidade diz respeito a um ataque de Negação de Serviço (DoS) por meio da função
parseVersion1(). O leitor no pacote é um bufio.Reader padrão que envolve um net.Conn, o qual lê a partir da conexão até encontrar uma nova linha. Como não há limites implementados no código, um cabeçalho V1 deliberadamente malformado poderia ser usado para esgotar a memória em um processo de servidor que utilize esse código e criar um DoS. Isso pode ser explorado enviando um fluxo que comece com PROXY e continue a enviar dados (que não contenham uma nova linha) até que o alvo pare de confirmar o recebimento. O risco é pequeno, pois apenas fontes confiáveis devem ter permissão para enviar cabeçalhos de protocolo proxy.Recomendações
Para versões anteriores à 0.5.0, atualize para a versão 0.5.0 ou posterior para resolver o problema. Como solução temporária, considere implementar limites no
bufio.Reader para evitar o uso excessivo de memória. Restrinja o acesso à função parseVersion1() para minimizar o risco de exploração. Evite usar o pacote com fontes não confiáveis para enviar cabeçalhos de protocolo de proxy.Correção
Resource Exhaustion
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Go-Proxyproto