Zgłoś incydent
Zgłoś incydent

Krytyczne podatności w kontrolerze Ingress-Nginx w Kubernetes

W popularnym kontrolerze Ingress-Nginx w wersjach do 1.12.0 i 1.11.4 włącznie znaleziono krytyczne podatności umożliwiające zdalne wykonanie kodu bez konieczności uwierzytelnienia. Ingress-Nginx jest domyślnym kontrolerem zarządzania ruchem sieciowym oferującym funkcje reverse-proxy oraz load balancingu w klastrach Kubernetes.

Zagrożenie

Znalezione podatności pozwalają na zdalne wykonanie kodu w klastrach z uruchomionym kontrolerem Ingress-Nginx poprzez wykorzystanie webhooka wystawianego domyślnie przez tę usługę. Jest ona domyślnie wystawiona na porcie TCP 8443 i z reguły osiągalna dla wszystkich podów w klastrze. Atakujący mający sieciowy dostęp do tej usługi, może zdalnie wykonać kod wykonując zapytanie HTTP.

Podatności otrzymały następujące CVE: CVE-2025-1097, CVE-2025-1098, CVE-2025-24513, CVE-2025-24514 oraz najpoważniejsza z nich CVE-2025-1974, której krytyczność oceniono na CVSS 9.8.

Advisory producenta dostępne jest na stronie: https://kubernetes.io/blog/2025/03/24/ingress-nginx-CVE-2025-1974.
Informacja znalazców podatności dostępna jest na stronie https://wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities.

Uwaga: Podany jest Ingress NGINX Controller, a nie NGINX Ingress Controller.

Weryfikacja podatności

Podatna jest wersja 1.12.0 oraz wszystkie do 1.11.4.

Podatny webhook nazywa się "ingress-nginx-admission", i można zweryfikować jego obecność wykonując polecenie

kubectl get ValidatingWebhookConfiguration -A

Jeżeli polecenie zwróci konfigurację, a wersja Ingress-Nginx to 1.12.0 lub 1.11.4 i niższa, podatność jest możliwa do wykorzystania.

Rekomendacje

Rekomendujemy pilną aktualizację komponentu Ingress-Nginx do wersji 1.12.1 lub 1.11.5: https://kubernetes.github.io/ingress-nginx/deploy/upgrade/.

Jeżeli nie jest to możliwe, należy podjąć następujące działania zaradcze:

  1. Ograniczenie dostępu sieciwego do usługi Validating Admission Controller na porcie TCP :8443 wyłącznie do usługi API kube-apiserver.

  2. Wyłączenie funkcji Validating Admission Controller:
    - jeżeli do instalacji Ingress-Nginx użyto Helm, należy przeinstalować ją używając opcji controller.admissionWebhooks.enabled=false.
    - jeżeli Ingress-Nginx zainstalowano ręcznie, należy usunąć konfigurację ValidatingWebhookConfiguration oraz usunąć parametr --validating-webhook z polecenia w konfiguracji Deployment lub DaemonSet ingress-nginx-controller.

Udostępnij: