CVE 의 영향을 받는 NGINX Ingress Controller는 무엇인가요?

2023년 10월 25일, 미국 국립표준기술연구소(NIST)에서 Kubernetes 용 NGINX Ingress Controller 에 영향을 미치는 세 가지 CVE 가 보고되었습니다:

  • CVE-2022-4886 – log_format 지시문으로 ingress-nginx 경로 삭제를 우회할 수 있습니다.
  • CVE-2023-5043 – ingress-nginx annotation injection으로 임의 명령 실행됩니다.
  • CVE-2023-5044 – Code injection은 nginx.ingress.kubernetes.io/permanent-redirect 어노테이션을 통해 발생합니다.

해당 보고서와 후속 발행물(예: 긴급: Kubernetes 용 NGINX Ingress Controller에서 발견된 새로운 보안 결함 등)은 실제로 어떤 NGINX Ingress Controller가 영향을 받는지, 누가 이러한 CVE에 설명된 취약점을 해결해야 하는지에 대해 약간의 혼란(그리고 많은 지원 문의)을 야기했습니다.

혼란스러운 것은 충분히 이해할 수 있습니다. NGINX 기반 Ingress Controller가 두 개 이상 있다는 사실을 알고 계셨나요? 우선, NGINX Ingress Controller라는 완전히 다른 두 개의 프로젝트가 있습니다:

  • 커뮤니티 프로젝트 – GitHub의 kubernetes/ingress-nginx 리포지토리에 있는 이 Ingress Controller는 NGINX Open Source Data Plane을 기반으로 하지만, Kubernetes 커뮤니티에서 개발 및 유지 관리하며 문서가 GitHub에 호스팅되어 있습니다.
  • NGINX 프로젝트 – GitHub의 nginxinc/kubernetes-ingress 리포지토리에 있는 NGINX Ingress Controller는 F5 NGINX에서 개발 및 유지 관리하며, docs.nginx.com에 문서가 있습니다. 이 공식 NGINX 프로젝트는 두 가지 버전으로 제공됩니다:
    • NGINX 오픈 소스 기반(무료 및 오픈 소스 옵션)
    • NGINX Plus 기반(상용 옵션)

Kong과 같이 NGINX를 기반으로 하는 다른 Ingress Controller도 있습니다. 다행히도 그 이름은 쉽게 구분할 수 있습니다. 어떤 것을 사용하고 있는지 잘 모르겠다면, 실행 중인 Ingress Controller의 컨테이너 이미지를 확인한 다음, 위에 나열된 리포지토리와 Docker 이미지 이름을 비교하세요.

위에서 설명한 취약점(CVE-2022-4886, CVE-2023-5043, CVE-2023-5044)은 커뮤니티 프로젝트(kubernetes/ingress-nginx)에서만 적용됩니다. NGINX Ingress Controller(오픈 소스 및 상용 모두)를 위한 NGINX 프로젝트(nginxinc/kubernetes-ingress)는 이러한 CVE의 영향을 받지 않습니다.

NGINX Ingress Controller와 Ingress Controller 프로젝트의 차이점에 대한 자세한 내용은 블로그 Ingress Controller 선택 가이드, Part 4: NGINX Ingress Controller옵션에서 확인할 수 있습니다.

NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.

NGINX에 대한 최신 정보들을 빠르게 전달받고 싶으시다면, 아래의 뉴스레터를 구독하세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required