🇰🇷 한글 설명
Argo Workflows 4.0.0~4.0.5 이전 버전에서 SSO_DELEGATE_RBAC_TO_NAMESPACE 활성화 시, RBAC 권한 검증 로직의 nil pointer dereference로 인한 panic 발생. SSO 사용자가 namespace-level RBAC는 매칭되지만 SSO-namespace 규칙에 매칭되지 않을 때 서비스 거부 상태가 됩니다.
💡 쉬운 설명
Argo Workflows의 권한 확인 시스템에서 특정 사용자 접근 시 프로그램이 crash되는 문제입니다. SSO를 사용하는 쿠버네티스 환경에서 공격자가 의도적으로 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. From version 4.0.0 to before version 4.0.5, a nil pointer dereference in server/auth/gatekeeper.go rbacAuthorization() causes a panic (denial of service) for SSO users whose claims match a namespace-level RBAC rule but not an SSO-namespace rule, when SSO_DELEGATE_RBAC_TO_NAMESPACE=true. This issue has been patched in version 4.0.5.
📍 영향받는 시스템
Argo Workflows 4.0.0 ~ 4.0.4 (SSO_DELEGATE_RBAC_TO_NAMESPACE=true 설정된 경우)
⚔️ 공격 벡터
SSO 인증된 사용자가 특정 namespace-level RBAC 규칙에만 매칭되고 SSO-namespace 규칙에는 매칭되지 않는 접근 요청으로 nil pointer dereference 트리거
🛡️ 대응 방법
Argo Workflows를 4.0.5 이상으로 업그레이드하거나 SSO_DELEGATE_RBAC_TO_NAMESPACE 설정을 비활성화
🔧 검증 코드
출력된 이미지에서 v4.0.0~v4.0.4 버전이 보이면 취약. 4.0.5 이상이거나 'not found'면 안전
kubectl get deployment -n argo argo-server -o jsonpath='{.spec.template.spec.containers[0].image}' 2>/dev/null | grep -oE 'v?4\.(0\.[0-4]|[0-4]\.)' || echo 'Argo not found or patched'