🇰🇷 한글 설명
Traefik의 Kubernetes Gateway 프로바이더에서 crossProviderNamespaces 허용 목록 검증 로직에 결함이 발견되었습니다. HTTPRoute 규칙이 자신의 네임스페이스가 아닌 대상 backendRef의 네임스페이스를 기준으로 허용 목록을 평가하여, 허용되지 않은 네임스페이스에서 내부 Traefik 서비스에 접근할 수 있는 취약점입니다.
💡 쉬운 설명
보안 규칙을 우회하여 관리자 페이지나 내부 API 같은 중요한 서비스에 몰래 접근할 수 있는 문제입니다. 공격자가 허용된 구역을 이용해 금지된 구역의 서비스를 호출하는 방식으로 발생합니다.
🇺🇸 원문 (English)
Traefik is an HTTP reverse proxy and load balancer. Prior to 3.6.21 and 3.7.5, there is a high severity vulnerability in Traefik's Kubernetes Gateway provider affecting the crossProviderNamespaces allowlist. For HTTPRoute rules that declare multiple (WRR) backendRefs, Traefik evaluates the allowlist against the target backendRef.namespace instead of the route's own namespace. As a result, an HTTPRoute created in a namespace that is not allow-listed can reference a cross-provider TraefikService such as api@internal, dashboard@internal or rest@internal by pointing backendRef.namespace at an allow-listed namespace covered by a Gateway API ReferenceGrant, exposing internal Traefik services on the data plane. Exploitation requires the ability to create an accepted HTTPRoute and a matching ReferenceGrant from an allow-listed namespace; it does not require any change to Traefik static configuration, RBAC, or the deployment itself. This vulnerability is fixed in 3.6.21 and 3.7.5.
📍 영향받는 시스템
Traefik versions prior to 3.6.21 and 3.7.5
⚔️ 공격 벡터
허용된 네임스페이스에 ReferenceGrant를 생성하고, backendRef.namespace를 조작한 HTTPRoute를 통해 내부 서비스에 접근
🛡️ 대응 방법
Traefik을 3.6.21 또는 3.7.5 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 3.6.21 이상 또는 3.7.5 이상인지 확인하여 취약 여부를 판단합니다.
traefik version | grep -E '3\.(6\.[0-9]{2,}|7\.[0-5])'