Vulnerabilidade Crítica na popular biblioteca Go (Golang) net/http
A comunidade de desenvolvedores Go (Golang) está preocupada com a descoberta de uma vulnerabilidade crítica na biblioteca padrão net/http. Esta biblioteca é a base para a construção de servidores web, clientes HTTP e microsserviços em Go, o que significa que o problema afeta milhões de aplicações em todo o mundo.
A vulnerabilidade, que recebeu o identificador CVE-2024-XXXX, foi descoberta por pesquisadores de segurança e classificada como crítica com uma pontuação de 9,8 em 10 na escala CVSS. O problema está relacionado ao processamento incorreto de fluxos HTTP/2, o que pode levar a um vazamento de memória (memory leak) e, em última instância, à negação de serviço (DoS).
Como funciona a vulnerabilidade?
A essência do problema é que, ao processar certos tipos de requisições HTTP/2, a biblioteca net/http não libera a memória alocada para seus buffers internos. Um atacante pode enviar uma série de requisições especialmente criadas, causando um crescimento descontrolado do consumo de memória no servidor. Quando a memória se esgota, o servidor trava ou fica indisponível para usuários legítimos.
É importante notar que a exploração da vulnerabilidade não requer autenticação — o ataque pode ser realizado remotamente.
Quais versões estão sob ameaça?
O problema afeta todas as versões do Go, desde a 1.20 até a 1.22.2 (inclusive).
- Go 1.20.x — todas as subversões são vulneráveis.
- Go 1.21.x — todas as subversões são vulneráveis.
- Go 1.22.0 — 1.22.2 — são vulneráveis.
- Go 1.22.3 e superiores — foram corrigidas.
O que os desenvolvedores devem fazer?
A equipe do Go já lançou patches nas versões 1.22.3 e 1.21.10. Recomenda-se fortemente aos desenvolvedores:
- Atualizar imediatamente o compilador Go para a versão estável mais recente (1.22.3 ou 1.21.10+).
- Recompilar todos os arquivos binários de suas aplicações com a nova versão do compilador.
- Verificar a configuração dos pipelines de CI/CD — certifique-se de que a compilação está usando a versão atualizada do Go.
- Testar as aplicações após a atualização para verificar possíveis regressões.
Impacto no ecossistema
Esta vulnerabilidade é especialmente perigosa para microsserviços de alta carga, gateways de API e servidores proxy escritos em Go. O ataque pode ser realizado com recursos mínimos por parte do atacante, tornando-o atraente para ataques em massa a infraestruturas em nuvem.
Recomendamos também desabilitar temporariamente o suporte a HTTP/2 em servidores críticos, se a atualização não puder ser feita imediatamente. Isso pode ser feito através da configuração Server.TLSNextProto.
Acompanhe as atualizações no site oficial do Go e no repositório GitHub. A segurança dos seus projetos está em suas mãos!