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

VetorAV: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

CVE-2021-23351
GHSA-FQH4-RH59-XHVF
SNYK-GOLANG-GITHUBCOMPIRESGOPROXYPROTO-1081577

Produtos afetados

Go-Proxyproto