🇰🇷 한글 설명
ingress-nginx에서 Ingress annotations의 조합을 통해 nginx 설정에 임의의 코드를 주입할 수 있는 보안 취약점입니다. 이를 이용하면 ingress-nginx controller 권한으로 임의 코드 실행 및 cluster 전역 Secrets 접근이 가능합니다.
💡 쉬운 설명
쿠버네티스 ingress-nginx 설정에 악의적인 명령을 몰래 심는 것이 가능한 버그입니다. 공격자가 이를 악용하면 전체 클러스터의 모든 비밀 정보(암호, 토큰 등)를 탈취할 수 있습니다.
🇺🇸 원문 (English)
A security issue was discovered in ingress-nginx where a combination of Ingress annotations can be used to inject configuration into nginx. This can lead to arbitrary code execution in the context of the ingress-nginx controller, and disclosure of Secrets accessible to the controller. (Note that in the default installation, the controller can access all Secrets cluster-wide.)
📍 영향받는 시스템
ingress-nginx 컨트롤러 (특정 버전 범위에서 기본 설치 시 클러스터 전역 Secrets 접근 가능)
⚔️ 공격 벡터
Ingress 리소스의 annotations 필드에 조합된 악의적인 설정값을 주입하여 nginx 설정 조작
🛡️ 대응 방법
ingress-nginx를 최신 보안 패치 버전으로 업그레이드하고 RBAC를 통해 컨트롤러 Secrets 접근 권한 제한
🔧 검증 코드
현재 설치된 ingress-nginx 버전을 확인하여 공개된 취약 버전 범위와 비교하고 필요시 업그레이드 실행
kubectl get deployment -n ingress-nginx ingress-nginx-controller -o jsonpath='{.spec.template.spec.containers[0].image}' 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+'