Argo Cd · Argo Cd · CVE-2025-59538
**Nome do Software Vulnerável e Versões Afetadas**
Versões do Argo CD 2.9.0-rc1 até 2.14.19
Versões do Argo CD 3.0.0-rc1 até 3.2.0-rc1
Versão do Argo CD 3.1.6
Versão do Argo CD 3.0.17
**Descrição**
O Argo CD, uma ferramenta de entrega contínua GitOps declarativa para Kubernetes, está suscetível a um problema de negação de serviço. Quando o `webhook.azuredevops.username` e o `webhook.azuredevops.password` não estão definidos na configuração padrão, o endpoint `/api/webhook` faz falhar todo o processo `argocd-server` ao receber um evento Push do Azure DevOps com um array JSON `resource.refUpdates` vazio. Isso ocorre porque o código tenta acessar o primeiro elemento (`[0]`) do slice `resource.refUpdates` sem verificar seu comprimento, levando a um panic de índice fora do intervalo. Uma única requisição HTTP POST não autenticada para o endpoint `/api/webhook` é suficiente para encerrar o processo. O código vulnerável está localizado em `util/webhook/webhook.go` por volta da linha 147, especificamente ao analisar as informações de revisão. O problema é acionado quando o array `refUpdates` está vazio, causando um panic durante o acesso ao slice.
**Recomendações**
Para as versões 2.9.0-rc1 até 2.14.19, configure um segredo de webhook para garantir que apenas partes confiáveis possam invocar o manipulador de webhook.
Para as versões 2.9.0-rc1 até 2.14.19, se o Azure DevOps não for utilizado, defina o `webhook.azuredevops.username` e o `webhook.azuredevops.password` para valores longos e aleatórios para efetivamente desabilitar a manipulação de webhook para payloads do Azure DevOps.
Para as versões 3.0.0-rc1 até 3.2.0-rc1, configure um segredo de webhook para garantir que apenas partes confiáveis possam invocar o manipulador de webhook.
Para as versões 3.0.0-rc1 até 3.2.0-rc1, se o Azure DevOps não for utilizado, defina o `webhook.azuredevops.username` e o `webhook.azuredevops.password` para valores longos e aleatórios para efetivamente desabilitar a manipulação de webhook para payloads do Azure DevOps.
Para a versão 3.1.6, configure um segredo de webhook para garantir que apenas partes confiáveis possam invocar o manipulador de webhook.
Para a versão 3.1.6, se o Azure DevOps não for utilizado, defina o `webhook.azuredevops.username` e o `webhook.azuredevops.password` para valores longos e aleatórios para efetivamente desabilitar a manipulação de webhook para payloads do Azure DevOps.
Para a versão 3.0.17, configure um segredo de webhook para garantir que apenas partes confiáveis possam invocar o manipulador de webhook.
Para a versão 3.0.17, se o Azure DevOps não for utilizado, defina o `webhook.azuredevops.username` e o `webhook.azuredevops.password` para valores longos e aleatórios para efetivamente desabilitar a manipulação de webhook para payloads do Azure DevOps.