Remote Code Execution Vulnerabilities Surface in Ingress Nginx
Based in the Holy Land, Tel-Aviv’s Wiz Research team says it has identified a series of unauthenticated Remote Code Execution (RCE) vulnerabilities in the Ingress Nginx Controller for Kubernetes.
Dubbed the #IngressNightmare, this vulnerability has the potential to open the door to malicious bad actors. This is the type of vulnerability that can offer unauthorized access to all manner of software system secrets (API keys, passwords, database credentials and so on) stored across all namespaces (logical divisions within a Kubernetes environment) in a Kubernetes cluster.
The Role of Ingress Controller
Unpacking this nightmare for a moment, let’s remind ourselves that in cloud-native infrastructures, the Ingress concept enables software engineers to map traffic to different backends based on defined rules via the Kubernetes API. An Ingress controller works as a reverse proxy and load balancer to convert configurations from Kubernetes Ingress into routing rules, providing an entry point for external traffic to the services inside the cluster.
Although different open-source projects implementing Ingress controllers are available in Kubernetes environments, one of the most popular is Nginx. In terms of how tricky this would be to exploit, there are a few steps to go through, i.e., it’s not as serious as a zero-click interaction on a phone that could allow access to the device, which might then be used for Signal conversations or anything like that. That said, the team does have concerns.
According to Wiz researchers Nir Ohfeld, Ronen Shustin, Sagi Tzadik and Hillai Ben-Sasson, “Based on our analysis, about 43% of cloud environments are vulnerable to these vulnerabilities, with our research uncovering over 6,500 clusters, including Fortune 500 companies, that publicly expose vulnerable Kubernetes Ingress controllers’ admission controllers to the public internet – putting them at immediate critical risk. We recommend patching as soon as possible.”
The team explains that the job of an Ingress controller is to accept incoming traffic and route it to the relevant Kubernetes services, which in turn forward the traffic to the appropriate pods, based on a set of rules. Ingress Nginx is “explicitly highlighted” in the Kubernetes documentation as an example Ingress controller that fulfills the prerequisite for using Ingress in Kubernetes. Wiz research shows that over 41% of internet-facing clusters are running Ingress-Nginx.
“Ingress Nginx deploys an admission controller within its pod, designed to validate incoming Ingress objects before they are deployed. By default, admission controllers are accessible over the network without authentication, making them a highly appealing attack vector,” detail the Wiz team, in a technical advisory blog. “When the Ingress-Nginx admission controller processes an incoming Ingress object, it constructs an Nginx configuration from it and then validates it using the Nginx binary. Our team found a vulnerability in this phase that allows injecting an arbitrary Nginx configuration remotely, by sending a malicious ingress object directly to the admission controller through the network.”
Complete Cluster Takeover
During the configuration validation phase, the injected Nginx configuration causes the Nginx validator to execute code, allowing remote code execution on the Ingress Nginx controller’s pod. The Wiz team says the admission controller’s elevated privileges and unrestricted network accessibility create a critical escalation path. They note that exploiting this flaw allows an attacker to execute arbitrary code and access all cluster secrets across namespaces. All of which could, ostensibly and practically… lead to complete cluster takeover.
Michael Clark, director of threat research at Sysdig, agrees that the Ingress Nginx controller is one of Kubernetes’ most popular Ingress controllers, with thousands of stars on GitHub.
“Combining all these vulnerabilities allows an attacker to achieve remote code execution and potentially overall Kubernetes cluster compromise,” explained Clark. “Organizations should prioritize remediating this vulnerability and patch all affected systems immediately. Remediation entails upgrading all instances of Ingress Nginx Controller to the latest version in the environment and ensuring the admission webhook endpoint isn’t publicly exposed.”
Among the vulnerabilities reported, Clark and team say that the “most impactful” is the CVE-2025-1974, which allows unauthenticated remote code execution. This class of vulnerability allows an attacker to execute arbitrary code, potentially leading to a cluster-wide impact due to the Kubernetes role assigned to the Nginx Ingress Controller pod.
“Since this role has elevated permissions, an attacker could exploit it to escalate privileges within the cluster,” said Clark. “Sysdig also recommends looking for potential examples of activity using Falco for real-time detection – it has not been exploited as far as anyone knows, but the fact that it is so widely used means that it is a potential risk.”
Containerization Alone is Not Security
The Wiz team caveat all their statements in this space and says that to be clear, gaining initial access to a cluster’s pod network is not as difficult as one might think – containerization on its own is not a strong security boundary.
“Many applications running on K8s are susceptible to container escape, as we have repeatedly demonstrated in our research of cloud and SaaS applications over the past few years. Additionally, these vulnerabilities pair very well with SSRF vulnerabilities, which are an arguably common occurrence in web applications,” the Wiz engineers detail.
Wiz customers can use the pre-built query and advisory in the Wiz Threat Center. Wiz also validates for exposed admission controllers using the Wiz Dynamic Scanner. Finally, the Wiz Runtime Sensor detects zero-day vulnerabilities like Ingress Nightmare by continuously monitoring ingress traffic, capturing malicious admission review requests in real-time, and flagging anomalous library loads to prevent similar attacks.
The Tel-Aviv team thinks that Kubernetes Admission Controllers present an “interesting and often overlooked” attack surface in a Kubernetes environment. They are triggered by the Kubernetes API server to review and potentially modify or block requests before they are processed… and they often run with relatively high privileges within the cluster.
“We are only scratching the surface in reviewing the security of admission controllers. Initially, we were surprised to see that such a large code base is used behind the scenes. In our view, this attack surface should be restricted in a much better way: By removing access from pods within the cluster and never exposing this publicly. We were also surprised by the lack of least-privilege design, as the exploit ended up with privileges to take control of the cluster,” notes Wiz.
During its research, the Wiz team found other vulnerabilities in Ingres Nginx Controller, and they expect to find more in other admission controllers.