🇰🇷 한글 설명
Traefik의 Kubernetes CRD 제공자에서 allowCrossNamespace=false 설정시에도 Chain 미들웨어 내부의 중첩된 미들웨어 참조를 통해 다른 네임스페이스의 미들웨어에 접근 가능한 격리 우회 취약점이다. 자신의 네임스페이스에서 Traefik CRD 생성/수정 권한이 있는 공격자가 이를 악용하여 다른 네임스페이스의 미들웨어를 해결 및 적용하도록 강제할 수 있다.
💡 쉬운 설명
Traefik 웹 트래픽 관리 도구에서 팀별 격리된 설정을 우회할 수 있는 보안 결함이 있다. 권한이 제한된 사용자도 특정 설정 방식을 통해 다른 팀의 규칙을 임의로 적용할 수 있다.
🇺🇸 원문 (English)
Traefik is an HTTP reverse proxy and load balancer. Prior to versions 2.11.43, 3.6.14, and 3.7.0-rc.2, there is a potential vulnerability in Traefik's Kubernetes CRD provider cross-namespace isolation enforcement. When providers.kubernetesCRD.allowCrossNamespace=false, Traefik correctly rejects direct cross-namespace middleware references from IngressRoute objects, but fails to apply the same restriction to middleware references nested inside a Chain middleware's spec.chain.middlewares[]. An actor with permission to create or update Traefik CRDs in their own namespace can exploit this to cause Traefik to resolve and apply middleware objects from another namespace, bypassing the documented isolation boundary. This issue has been patched in versions 2.11.43, 3.6.14, and 3.7.0-rc.2.
📍 영향받는 시스템
Traefik 2.11.43 미만, 3.6.14 미만, 3.7.0-rc.2 미만 (Kubernetes CRD 제공자 사용 시)
⚔️ 공격 벡터
Kubernetes CRD에서 allowCrossNamespace=false 설정시 IngressRoute의 직접 참조는 차단되나, Chain 미들웨어 내부 중첩 참조는 검증 미흡으로 크로스네임스페이스 접근 가능
🛡️ 대응 방법
Traefik을 2.11.43, 3.6.14, 또는 3.7.0-rc.2 이상 버전으로 업그레이드
🔧 검증 코드
출력된 버전이 2.11.43 이상, 3.6.14 이상, 또는 3.7.0-rc.2 이상이면 패치됨; 그 이하이면 업그레이드 필수
traefik --version 2>/dev/null | grep -oE '(2\.[0-9]+\.[0-9]+|3\.[0-9]+\.[0-9]+)'