🇰🇷 한글 설명
NGINX Ingress Controller의 설정 생성기에서 Ingress 어노테이션을 처리할 때 주입 취약점이 존재합니다. 인증된 공격자가 권한을 이용해 검증되지 않은 값을 입력하면 임의의 NGINX 설정 지시어를 주입할 수 있습니다.
💡 쉬운 설명
권한이 있는 사용자가 설정값에 악의적인 명령어를 몰래 끼워 넣어 NGINX 설정을 마음대로 바꿀 수 있는 문제입니다. 이를 통해 파일을 삭제하거나 서비스를 중단시키는 등의 제어권 탈취가 가능합니다.
🇺🇸 원문 (English)
When NGINX Ingress Controller is configured with Ingress annotations, an injection vulnerability exists in the configuration generator of NGINX Ingress Controller. Multiple user-controllable fields are written into the generated NGINX configuration without sanitization. An authenticated attacker with permission to create or modify these annotations may craft values that inject arbitrary NGINX configuration directives.
Impact:
An authenticated attacker granted write access to NGINX Ingress Controller Ingress annotations through the Kubernetes API may be able to inject arbitrary NGINX configuration directives, create or delete files, or disable services. There is no data plane exposure; this is a control plane issue only.
Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.
📍 영향받는 시스템
NGINX Ingress Controller (어노테이션 수정 권한이 있는 환경)
⚔️ 공격 벡터
Kubernetes API를 통해 Ingress 어노테이션에 악의적인 NGINX 설정 지시어를 주입
🛡️ 대응 방법
NGINX Ingress Controller를 최신 보안 패치가 적용된 버전으로 업데이트하고, 사용자별 어노테이션 수정 권한을 최소화(RBAC)합니다.
🔧 검증 코드
출력된 결과에서 현재 사용 중인 NGINX Ingress Controller의 버전을 확인하여 취약한 버전인지 대조합니다.
kubectl get ingresscontroller -n ingress-nginx -o yaml | grep -i 'version'