🇰🇷 한글 설명
Contour 1.17.1 미만 버전에서 특수하게 제작된 ExternalName 타입의 Service를 사용하여 Envoy 관리 인터페이스에 접근할 수 있는 취약점입니다. 이를 통해 공격자는 Envoy를 원격으로 종료하여 서비스 거부(DoS)를 일으키거나, TLS 키페어를 포함한 설정에 사용되는 Secret의 존재 여부를 노출시킬 수 있습니다.
💡 쉬운 설명
해커가 조작된 설정을 이용해 서비스 관리자 페이지에 몰래 접속할 수 있는 문제입니다. 이로 인해 웹 서비스가 갑자기 중단되거나 보안 정보의 존재가 드러날 위험이 있습니다.
🇺🇸 원문 (English)
Contour is a Kubernetes ingress controller using Envoy proxy. In Contour before version 1.17.1 a specially crafted ExternalName type Service may be used to access Envoy's admin interface, which Contour normally prevents from access outside the Envoy container. This can be used to shut down Envoy remotely (a denial of service), or to expose the existence of any Secret that Envoy is using for its configuration, including most notably TLS Keypairs. However, it *cannot* be used to get the *content* of those secrets. Since this attack allows access to the administration interface, a variety of administration options are available, such as shutting down the Envoy or draining traffic. In general, the Envoy admin interface cannot easily be used for making changes to the cluster, in-flight requests, or backend services, but it could be used to shut down or drain Envoy, change traffic routing, or to retrieve secret metadata, as mentioned above. The issue will be addressed in Contour v1.18.0 and a cherry-picked patch release, v1.17.1, has been released to cover users who cannot upgrade at this time. For more details refer to the linked GitHub Security Advisory.
📍 영향받는 시스템
Contour versions prior to 1.17.1 and 1.18.0
⚔️ 공격 벡터
Specially crafted ExternalName type Service to access Envoy's admin interface
🛡️ 대응 방법
Upgrade Contour to version 1.17.1 or 1.18.0 or higher
🔧 검증 코드
출력된 버전이 1.17.1 미만인 경우 취약한 버전이므로 업데이트가 필요합니다.
contour --version 2>/dev/null | grep -E 'v(1\.[0-1][0-6]|1\.1[7-8])'