Critical Ingress NGINX Controller Vulnerability Allows RCE Without Authentication
Vulnerabilities mentionedAll →
| CVE | Vulnerability | CVSS | EPSS | Flags | Affected | Exposure | Published |
|---|---|---|---|---|---|---|---|
| CVE-2025-1097 | Config Injection RCE in Kubernetes ingress-nginx via auth-tls-match-cn annotation CVE-2025-1097 is a configuration injection flaw (CWE-20) in the Kubernetes ingress-nginx controller: values of the auth-tls-match-cn Ingress annotation are not properly sanitized, so an attacker who can create or modify Ingress resources can inject arbitrary nginx configuration directives. On configuration reload, the injected directives are interpreted by nginx, which can be escalated to arbitrary code execution in the context of the ingress-nginx controller. An attacker with code execution in the controller can also read Secrets accessible to it, and in a default installation the controller can access all Secrets cluster-wide, enabling broader cluster compromise. Any cluster running a vulnerable ingress-nginx controller is affected, with the greatest risk where untrusted or multi-tenant users hold rights to apply Ingress annotations or where controller pods are internet-exposed. Per the available data there is no confirmed in-the-wild exploitation or public PoC yet, but EPSS assigns a 35.5% probability of exploitation within 30 days (98th percentile), and the flaw is part of the "IngressNightmare" group of bugs reported to affect roughly 40% of cloud environments. Do: Upgrade ingress-nginx controllers to the latest release containing the IngressNightmare fixes and restart/verify the controller deployment. Until patched, restrict RBAC permissions for creating or modifying Ingress resources (especially the auth-tls-match-cn annotation) to trusted administrators, avoid exposing controller pods directly to the internet, and review which Secrets the controller service account can read. | 8.8 | 36% |
| large~hundreds of thousands of clusters (ingress-nginx reported in ~40% of cloud environments; ~6,800 controllers directly internet-exposed in public scans) | ||
| CVE-2025-1098 | Config Injection via Ingress Annotations Enables RCE in ingress-nginx CVE-2025-1098 is an input-validation flaw (CWE-20) in the Kubernetes ingress-nginx controller: the `mirror-target` and `mirror-host` Ingress annotations are not properly sanitized, allowing arbitrary NGINX configuration directives to be injected into the controller's generated configuration. An attacker who can create or modify Ingress resources in the cluster (low privileges, no user interaction required) crafts these annotation values, and the injected configuration is consumed by the controller's NGINX instance to execute arbitrary code in the context of the ingress-nginx controller. Successful exploitation also leads to disclosure of Secrets accessible to the controller; in a default installation the controller can read every Secret cluster-wide, enabling credential theft and potentially full cluster takeover. Any Kubernetes cluster running a vulnerable ingress-nginx controller is affected, and public research tied to the related 'IngressNightmare' disclosures found the component in roughly 40% of cloud environments. No public proof-of-concept or confirmed in-the-wild exploitation is known yet, but EPSS assigns this CVE an 83.5% probability of exploitation within 30 days (100th percentile), so rapid patching is warranted. Do: Upgrade all ingress-nginx controllers to the patched releases (v1.12.1 or v1.11.5 per the vendor advisory) and restart controller pods. As interim mitigations, restrict RBAC so only trusted principals can create or update Ingress objects or set the mirror-target/mirror-host annotations (e.g., via a ValidatingAdmissionPolicy), and limit the controller's Secret access below cluster-wide where possible. Also patch the related IngressNightmare CVEs disclosed alongside this one and review clusters for exposed admission webhooks. | 8.8 | 83% |
| mass≈100,000+ Kubernetes clusters plausibly affected (ingress-nginx is the most widely used ingress controller, present in ~40% of cloud environments per public… | ||
| CVE-2025-1974 | Unauthenticated RCE in Kubernetes ingress-nginx controller (IngressNightmare) CVE-2025-1974 is a critical (CVSS 9.8) unauthenticated remote code execution flaw in the Kubernetes ingress-nginx controller, identified as part of the IngressNightmare set of defects. An attacker who has any access to the pod network, with no credentials required, can trigger the flaw and execute arbitrary code in the context of the ingress-nginx controller process. From that position the attacker can disclose Secrets accessible to the controller, and in a default installation the controller can read all Secrets cluster-wide, which follow-on coverage notes can lead to Kubernetes cluster takeover. Any Kubernetes cluster running the ingress-nginx controller is affected; public research cited in the headlines estimates the component is present in roughly 40% of cloud environments. No public proof-of-concept or confirmed in-the-wild exploitation is known at this time, but EPSS assigns a 99.5% probability of exploitation within 30 days, making urgent patching prudent. Do: Upgrade the ingress-nginx controller to the patched release identified in the project's security advisory for CVE-2025-1974. Until patched, restrict pod-network access to the controller (including its admission webhook endpoint) so only the Kubernetes control plane can reach it, and consider narrowing the controller's RBAC so it cannot read all Secrets cluster-wide. Review audit logs for unexpected requests to the controller and inventory clusters for ingress-nginx deployments, especially internet-facing ones. | 9.8 | 100% |
| massvery large | ||
| CVE-2025-24513 | A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where attacker-provided data are included in a filename by the ingr A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where attacker-provided data are included in a filename by the ingress-nginx Admission Controller feature, resulting in directory traversal within the container. This could result in denial of service, or when combined with other vulnerabilities, limited disclosure of Secret objects from the cluster. NVD description · AI analysis pending | 4.8 | 4% | — | — | ||
| CVE-2025-24514 | Config Injection via auth-url Annotation Enables RCE in Kubernetes ingress-nginx CVE-2025-24514 is an input validation flaw (CWE-20) in the Kubernetes ingress-nginx controller in which the auth-url Ingress annotation is inserted into the nginx configuration without sufficient sanitization. An attacker who can create or modify Ingress resources (the low-privilege requirement in the CVSS vector) can supply a crafted auth-url value that injects arbitrary nginx configuration directives into the controller. Successful exploitation yields arbitrary code execution in the context of the ingress-nginx controller and disclosure of Secrets the controller can access — which, in a default installation, means all Secrets cluster-wide, potentially enabling broader cluster compromise. Any environment running affected versions of the ingress-nginx controller is exposed; related reporting on the 'IngressNightmare' bug set says the component runs in roughly 40% of cloud environments. No public proof-of-concept or confirmed in-the-wild exploitation is known for this flaw, but its EPSS of 32.6% (98th percentile) indicates a substantial probability of exploitation within 30 days. Do: Upgrade the ingress-nginx controller to the latest patched release published by the project and confirm running controller pods use the fixed image. Restrict RBAC permissions to create or modify Ingress resources to trusted principals and audit existing Ingress objects for auth-url annotations. Because a default installation lets the controller read all Secrets cluster-wide, consider narrowing its Secret access as defense-in-depth. | 8.8 | 33% |
| masslikely 100,000+ controller installations (component reported in ~40% of cloud environments) |
Full article840 words · extracted from thehackernews.com · click to collapse
Ravie LakshmananMar 24, 2025Vulnerability / Cloud Security
A set of five critical security shortcomings have been disclosed in the Ingress NGINX Controller for Kubernetes that could result in unauthenticated remote code execution, putting over 6,500 clusters at immediate risk by exposing the component to the public internet.
The vulnerabilities (CVE-2025-24513, CVE-2025-24514, CVE-2025-1097, CVE-2025-1098, and CVE-2025-1974 ), assigned a CVSS score of 9.8, have been collectively codenamed IngressNightmare by cloud security firm Wiz. It's worth noting that the shortcomings do not impact NGINX Ingress Controller, which is another ingress controller implementation for NGINX and NGINX Plus.
"Exploitation of these vulnerabilities leads to unauthorized access to all secrets stored across all namespaces in the Kubernetes cluster by attackers, which can result in cluster takeover," the company said in a report shared with The Hacker News.
IngressNightmare, at its core, affects the admission controller component of the Ingress NGINX Controller for Kubernetes. About 43% of cloud environments are vulnerable to these vulnerabilities.
Ingress NGINX Controller uses NGINX as a reverse proxy and load balancer, making it possible to expose HTTP and HTTPS routes from outside a cluster to services within it.
The vulnerability takes advantage of the fact that admission controllers, deployed within a Kubernetes pod, are accessible over the network without authentication.
Specifically, it involves injecting an arbitrary NGINX configuration remotely by sending a malicious ingress object (aka AdmissionReview requests) directly to the admission controller, resulting in code execution on the Ingress NGINX Controller's pod.
"The admission controller's elevated privileges and unrestricted network accessibility create a critical escalation path," Wiz explained. "Exploiting this flaw allows an attacker to execute arbitrary code and access all cluster secrets across namespaces, that could lead to complete cluster takeover."
The shortcomings are listed below -
- CVE-2025-24513 (CVSS score: 4.8) – An improper input validation vulnerability that could result in directory traversal within the container, leading to denial-of-service (DoS) or limited disclosure of secret objects from the cluster when combined with other vulnerabilities
- CVE-2025-24514 (CVSS score: 8.8) – The auth-url Ingress annotation can be used to inject configuration into NGINX, resulting in arbitrary code execution in the context of the ingress-nginx controller and disclosure of secrets accessible to the controller
- CVE-2025-1097 (CVSS score: 8.8) – The auth-tls-match-cn Ingress annotation can be used to inject configuration into NGINX, resulting in arbitrary code execution in the context of the ingress-nginx controller and disclosure of secrets accessible to the controller
- CVE-2025-1098 (CVSS score: 8.8) – The mirror-target and mirror-host Ingress annotations can be used to inject arbitrary configuration into NGINX, resulting in arbitrary code execution in the context of the ingress-nginx controller and disclosure of secrets accessible to the controller
- CVE-2025-1974 (CVSS score: 9.8) – An unauthenticated attacker with access to the pod network can achieve arbitrary code execution in the context of the ingress-nginx controller under certain conditions
In an experimental attack scenario, a threat actor could upload a malicious payload in the form of a shared library to the pod by using the client-body buffer feature of NGINX, followed by sending an AdmissionReview request to the admission controller.
The request, in turn, contains one of the aforementioned configuration directive injections that causes the shared library to be loaded, effectively leading to remote code execution.
Hillai Ben-Sasson, cloud security researcher at Wiz, told The Hacker News that the attack chain essentially involves injecting a malicious configuration, and utilizing it to read sensitive files and run arbitrary code. This could subsequently permit an attacker to abuse a strong Service Account in order to read Kubernetes secrets and ultimately facilitate cluster takeover.
In a standalone advisory, the Kubernetes Security Response Committee said all the vulnerabilities with the exception of CVE-2025-1974 concern improvements to how Ingress NGINX handles certain configuration parameters. CVE-2025-1974, on the other hand, can be chained with the other flaws to facilitate cluster takeover without requiring credentials or administrative access.
Following responsible disclosure, the vulnerabilities have been addressed in Ingress NGINX Controller versions 1.12.1, 1.11.5, and 1.10.7.
Users are recommended to update to the latest version as soon as possible and ensure that the admission webhook endpoint is not exposed externally.
As mitigations, it's advised to limit only the Kubernetes API Server to access the admission controller and temporarily disable the admission controller component if it's not needed.
Update
Additional technical details about the IngressNightmare vulnerabilities have been Datadog Security Labs, ProjectDiscovery, and SentinelOne.
"CVE-2025-1974 is a critical vulnerability in the Ingress NGINX Controller that allows for unauthenticated remote code execution," ProjectDiscovery researchers said. "At its core, this vulnerability stems from a design flaw in how the admission controller component processes and validates incoming ingress objects."
"The admission controller in Ingress NGINX is designed to validate incoming ingress objects before they are deployed to ensure the resulting NGINX configuration will be valid. By default, these admission controllers are accessible over the network without authentication, making them a highly appealing attack vector."
Found this article interesting? Follow us on Google News, Twitter and LinkedIn to read more exclusive content we post.
Text extracted automatically; images, tables and formatting may be missing. Original: https://thehackernews.com/2025/03/critical-ingress-nginx-controller.html