🇰🇷 한글 설명
Kubernetes용 Capsule 프레임워크 0.13.0부터 0.13.7 버전에서 hostnameRegexHandler.OnUpdate 함수가 신규 및 기존 Tenant 파라미터를 반대로 처리하는 오류가 발견되었습니다. 이로 인해 클러스터 관리자가 잘못된 AllowedHostnames.Regex를 저장할 수 있으며, 이후 해당 테넌트의 Ingress 생성 및 업데이트 작업이 차단되는 서비스 거부(DoS) 상태가 발생할 수 있습니다.
💡 쉬운 설명
설정 값을 검사할 때 새 값 대신 옛날 값을 검사하는 실수 때문에 잘못된 규칙이 저장될 수 있습니다. 이 잘못된 규칙 때문에 해당 사용자의 네트워크 접속 설정이 먹통이 되어 서비스를 이용할 수 없게 됩니다.
🇺🇸 원문 (English)
Capsule is a multi-tenancy and policy-based framework for Kubernetes. From 0.13.0 until 0.13.7, hostnameRegexHandler.OnUpdate in internal/webhook/tenant/validation/hostname_regex.go reverses the new and old Tenant parameters and validates the previous AllowedHostnames.Regex instead of the submitted value. A cluster administrator can therefore store a malformed AllowedHostnames.Regex after the webhook accepts the update based on stale valid state. Subsequent Ingress creation or update reaches validate_hostnames.go, which evaluates the malformed pattern, ignores the regular-expression error, and treats every hostname as unmatched, blocking Ingress operations for the affected tenant until an administrator repairs the Tenant configuration. This issue is fixed in version 0.13.7.
📍 영향받는 시스템
Capsule framework versions 0.13.0 to 0.13.7
⚔️ 공격 벡터
클러스터 관리자가 테넌트 설정을 업데이트할 때 잘못된 정규식 패턴을 주입하여 테넌트의 Ingress 운영을 마비시킴
🛡️ 대응 방법
Capsule 프레임워크를 보안 패치가 적용된 버전인 0.13.7 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Capsule의 버전을 확인하여 0.13.7 미만인지 체크합니다.
helm list -A | grep capsule | awk '{print $2}' | xargs -I {} helm list --namespace all | grep capsule