🇰🇷 한글 설명
Argo CD의 특정 버전에서 Azure DevOps Push 이벤트의 JSON 배열인 resource.refUpdates가 비어 있을 경우, 인덱스 범위 초과로 인해 argocd-server 프로세스가 충돌하는 취약점이 발견되었습니다. 인증되지 않은 공격자가 단 한 번의 HTTP POST 요청만으로 전체 서버 프로세스를 중단시킬 수 있습니다.
💡 쉬운 설명
특정 조건에서 잘못된 데이터가 들어오면 서버가 갑자기 꺼져버리는 문제입니다. 해커가 가짜 신호를 보내면 서비스가 멈출 수 있어 주의가 필요합니다.
🇺🇸 원문 (English)
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. For versions 2.9.0-rc1 through 2.14.19, 3.0.0-rc1 through 3.2.0-rc1, 3.1.6 and 3.0.17, when the webhook.azuredevops.username and webhook.azuredevops.password are not set in the default configuration, the /api/webhook endpoint crashes the entire argocd-server process when it receives an Azure DevOps Push event whose JSON array resource.refUpdates is empty. The slice index [0] is accessed without a length check, causing an index-out-of-range panic. A single unauthenticated HTTP POST is enough to kill the process. This issue is resolved in versions 2.14.20, 3.2.0-rc2, 3.1.8 and 3.0.19.
📍 영향받는 시스템
Argo CD 2.9.0-rc1 ~ 2.14.19, 3.0.0-rc1 ~ 3.2.0-rc1, 3.1.6, 3.0.17
⚔️ 공격 벡터
인증되지 않은 상태에서 resource.refUpdates가 비어 있는 Azure DevOps Push 이벤트를 /api/webhook 엔드포인트로 전송
🛡️ 대응 방법
Argo CD를 2.14.20, 3.2.0-rc2, 3.1.8 또는 3.0.19 이상의 보안 패치 버전으로 업데이트
🔧 검증 코드
명령어 실행 결과에 패치된 버전 번호가 포함되어 있으면 안전합니다.
argocd version --client | grep -E '2.14.20|3.2.0-rc2|3.1.8|3.0.19'