Critical Ingress NGINX Controller vulnerability


Kubernetes have patched a set of five critical vulnerabilities for their "Ingress NGINX Controller for Kubernetes" – the most serious, designated CVE-2025-1974, has a rating of 9,8, and allows anything on the Pod network to exploit configuration injection vulnerabilities via the Validating Admission Controller feature of ingress-nginx.
Combined with the other four vulnerabilities, the attacker has a good chance of taking over the Kubernetes cluster without any credentials or administrative access.

As ingress-nginx is a popular ingress controller provided by Kubernetes themselves, versatile and easy to use, it is deployed in over 40 percent of the Kubernetes clusters – that means there is a likelihood that you have one if you're using Kubernetes.

What to do?


First, take a deep breath.
Then, check if your clusters are using ingress-nginx; it can usually be done by running the following command (you have to have admin permission):
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx

If you're running anything but versions v1.12.1 and v1.11.5 it is time to start patching.

The easies way is to upgrade to the new patch release of ingress-nginx.

If for some reason you can't patch straight away, you can reduce the risk by turning off the Validating Admission Controller feature of ingress-nginx (don't forget to turn it back on once you patch).

If you have installed ingress-nginx using Helm then reinstall, setting the Helm value to:
controller.admissionWebhooks.enabled=false

If you have installed ingress-nginx manually, delete the ValidatingWebhookconfiguration called
ingress-nginx-admission
edit the ingress-nginx-controller Deployment or Daemonset, removing --validating-webhook from the controller container’s argument list

Here time really is of the essence. Good luck all.