🇰🇷 한글 설명
Argo CD의 특정 버전에서 악의적인 API 요청으로 인해 API 서버가 충돌하고 서비스 거부(DoS) 상태가 발생할 수 있는 취약점이 발견되었습니다. 기본 설정에서 webhook.gogs.secret이 설정되지 않은 경우, 특정 필드가 누락된 Gogs 푸시 이벤트를 처리할 때 argocd-server 프로세스가 중단됩니다.
💡 쉬운 설명
공격자가 조작된 데이터를 보내면 Argo CD 서비스가 갑자기 멈춰버려 정상적인 사용이 불가능해질 수 있습니다. 이는 서비스가 중단되는 '서비스 거부 공격'으로 이어질 수 있습니다.
🇺🇸 원문 (English)
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Versions 1.2.0 through 1.8.7, 2.0.0-rc1 through 2.14.19, 3.0.0-rc1 through 3.2.0-rc1, 3.1.7 and 3.0.18 are vulnerable to malicious API requests which can crash the API server and cause denial of service to legitimate clients. With the default configuration, no webhook.gogs.secret set, Argo CD’s /api/webhook endpoint will crash the entire argocd-server process when it receives a Gogs push event whose JSON field commits[].repo is not set or is null. This issue is fixed in versions 2.14.20, 3.2.0-rc2, 3.1.8 and 3.0.19.
📍 영향받는 시스템
Argo CD 1.2.0~1.8.7, 2.0.0-rc1~2.14.19, 3.0.0-rc1~3.2.0-rc1, 3.1.7, 3.0.18
⚔️ 공격 벡터
commits[].repo 필드가 설정되지 않거나 null인 Gogs 푸시 이벤트를 /api/webhook 엔드포인트로 전송
🛡️ 대응 방법
Argo CD를 버전 2.14.20, 3.2.0-rc2, 3.1.8 또는 3.0.19 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Argo CD의 버전을 확인하여 취약한 버전 범위에 포함되는지 체크합니다.
argocd version --client 2>/dev/null | grep -E 'argocd-server' || kubectl get deployment argocd-server -n argocd -o jsonpath='{.spec.template.spec.containers[0].image}'