🇰🇷 한글 설명
Kubernetes API 서버의 취약점으로, ClusterIP 서비스 생성 시 externalIPs 필드를 설정하거나 LoadBalancer 서비스의 상태를 패치할 수 있는 공격자가 특정 IP로의 트래픽을 가로챌 수 있습니다. 이를 통해 공격자는 네트워크 트래픽을 중간에서 탈취하거나 조작할 수 있는 위험이 있습니다.
💡 쉬운 설명
클러스터 내부의 네트워크 주소를 공격자가 임의로 설정하여, 다른 서비스로 가야 할 데이터가 공격자에게 전달되도록 가로챌 수 있는 문제입니다. 마치 우편물의 수신 주소를 몰래 바꿔서 공격자가 편지를 대신 받게 만드는 것과 비슷합니다.
🇺🇸 원문 (English)
Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.externalIPs field, to intercept traffic to that IP address. Additionally, an attacker who is able to patch the status (which is considered a privileged operation and should not typically be granted to users) of a LoadBalancer service can set the status.loadBalancer.ingress.ip to similar effect.
📍 영향받는 시스템
모든 버전의 Kubernetes API server
⚔️ 공격 벡터
ClusterIP 서비스의 spec.externalIPs 설정 또는 LoadBalancer 서비스의 status.loadBalancer.ingress.ip 패치
🛡️ 대응 방법
Kubernetes 버전을 최신 보안 패치가 적용된 버전으로 업데이트하고, 사용자에게 서비스 상태(status)를 수정할 수 있는 권한을 제한해야 합니다.
🔧 검증 코드
명령어 결과에 의도하지 않은 외부 IP 주소가 포함되어 있다면 해당 취약점에 노출되었을 가능성이 있습니다.
kubectl get services --all-namespaces -o json | jq '.items[].spec.externalIPs'