🇰🇷 한글 설명
Skipper 0.27.13 미만 버전의 routesrv 구성 요소에서 애플리케이션 계층 인증 없이 클러스터 전체의 제어 평면 데이터를 노출하는 취약점이 발견되었습니다. 공격자는 인증 없이 특정 경로를 통해 Ingress, RouteGroup 백엔드 URL 및 Redis/Valkey 샤드 주소와 같은 민감한 정보를 읽을 수 있습니다.
💡 쉬운 설명
서비스 연결을 도와주는 Skipper 프로그램에 보안 문이 열려 있어, 허가되지 않은 사용자가 내부 네트워크 정보를 몰래 훔쳐볼 수 있는 문제입니다. 이를 통해 서비스의 주소나 데이터베이스 위치 같은 중요한 정보가 유출될 수 있습니다.
🇺🇸 원문 (English)
Skipper is an HTTP router and reverse proxy for service composition. Prior to 0.27.13, the routesrv component serves cluster-wide control-plane data without application-layer authentication through /routes, /routes/{zone}, /swarm/redis/shards, and /swarm/valkey/shards. The handlers registered in routesrv/routesrv.go, eskipBytes.ServeHTTP in routesrv/eskipbytes.go, RedisHandler.ServeHTTP in routesrv/redishandler.go, and ValkeyHandler.ServeHTTP in routesrv/valkeyhandler.go only restrict HTTP methods and do not authenticate callers. A compromised or otherwise attacker-controlled pod that can reach routesrv on the Kubernetes cluster network can bypass its namespace-scoped RBAC and read Ingress and RouteGroup backend URLs, filter-chain and OAuth or OIDC path details, and Redis or Valkey shard addresses across namespaces. NetworkPolicy can restrict reachability but does not remove the missing-authentication condition, and the established impact is confidentiality exposure rather than direct integrity or availability loss. This issue is fixed in version 0.27.13.
📍 영향받는 시스템
Skipper versions prior to 0.27.13
⚔️ 공격 벡터
Kubernetes 클러스터 네트워크 내에서 인증 없이 특정 HTTP 경로(/routes, /swarm/redis/shards 등)에 접근하여 데이터 탈취
🛡️ 대응 방법
Skipper를 0.27.13 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 0.27.13 미만이면 취약한 상태이며, 0.27.13 이상이면 안전합니다.
skipper --version 2>/dev/null || echo 'Skipper not found in PATH'