🇰🇷 한글 설명
Traefik 3.7.0-ea.1 이상 3.7.15 미만 버전의 Kubernetes Ingress NGINX 제공자에는 auth-tls-secret 어노테이션으로 설정된 mTLS를 조용히 비활성화하는 인증 우회 취약점이 존재합니다. 같은 호스트에 auth-tls 설정이 없는 다른 Ingress 경로가 선언되면 Traefik이 기본 TLS 옵션으로 대체되어, 클라이언트 인증서가 필요한 백엔드에 인증되지 않은 공격자가 접근할 수 있습니다.
💡 쉬운 설명
클라이언트 인증서로 신원을 확인하도록 보호된 서비스가 같은 주소의 다른 경로 설정 때문에 인증 없이 열릴 수 있습니다. 관리자가 의도한 보안 검사가 일부 경로에서 소리 없이 꺼지는 문제입니다.
🇺🇸 원문 (English)
Traefik from 3.7.0-ea.1 before 3.7.15 contains an authentication bypass vulnerability in the Kubernetes Ingress NGINX provider that silently disables mTLS configured via the auth-tls-secret annotation. When another Ingress declares a path on the same host without matching auth-tls settings, Traefik falls back to default TLS options, letting unauthenticated attackers reach backends requiring client certificates.
📍 영향받는 시스템
Traefik 3.7.0-ea.1 이상 3.7.15 미만 (Kubernetes Ingress NGINX 제공자 사용 환경)
⚔️ 공격 벡터
같은 호스트에 auth-tls 설정이 없는 Ingress 경로를 대상으로 요청하여 클라이언트 인증서 검증을 우회하고 보호된 백엔드에 접근
🛡️ 대응 방법
Traefik을 3.7.15 이상으로 업그레이드하고, 동일 호스트의 Ingress 경로들에 auth-tls 설정을 일관되게 적용
🔧 검증 코드
출력된 이미지 태그가 3.7.0-ea.1 이상 3.7.15 미만이면 취약하며, 3.7.15 이상이면 패치된 버전입니다. 결과가 없으면 Traefik이 클러스터에 배포되지 않은 것입니다.
kubectl get deployment -A -o jsonpath='{range .items[*]}{.metadata.name}{" "}{.spec.template.spec.containers[*].image}{"\n"}{end}' 2>/dev/null | grep -i traefik