How to Fix CVE-2025-1974: Remote Code Execution in ingress-nginx
| Severity | CVSS 9.8 (Critical) |
|---|---|
| Actively exploited? | No public reports of in-the-wild exploitation; not currently listed in CISA KEV. |
| Affected | ingress-nginx through 1.11.4 / 1.12.0 |
| Fixed in | See the vendor advisory linked in References for the exact patched version |
| Type (CWE) | CWE-653: Improper Isolation or Compartmentalization |
What is CVE-2025-1974?
A security issue was discovered in Kubernetes where under certain conditions, an unauthenticated attacker with access to the pod network can achieve arbitrary code execution in the context of the ingress-nginx controller. This can lead to disclosure of Secrets accessible to the controller. (Note that in the default installation, the controller can access all Secrets cluster-wide.)
The practical risk is straightforward. A successful exploit lets the attacker run arbitrary commands or code with the same privileges as the ingress-nginx service. From there, the attacker can pivot to other hosts, exfiltrate data, deploy ransomware, or persist using legitimate admin tooling.
Am I affected?
You are affected if you run ingress-nginx through 1.11.4 / 1.12.0.
If the build is older than the patched release listed under Fixed in, this CVE applies and you should follow the remediation steps below.
How to fix CVE-2025-1974
The vendor fix is to upgrade to a patched build. The verified patched version per the official advisory is See the vendor advisory linked in References for the exact patched version.
- Read the official advisory for the exact patched build that applies to your deployment model (see https://https://github.com/kubernetes/kubernetes/issues/131009).
- Plan the upgrade window. Ingress-nginx updates are not always hot-pluggable; check the vendor's release notes for required restarts, database migrations, or licensing steps before scheduling production downtime.
- Take a verified backup of configuration and data before upgrading. Roll-back is faster than rebuilding.
- Apply the patch or upgrade using your normal package or vendor installer flow. Use the vendor's documented procedure, not a third-party guide.
- Restart services as the advisory directs. Some fixes only become active after a service restart, others after a full reboot.
Patch the Kubernetes workload
# The patched image tag is listed in the vendor advisory: https://https://github.com/kubernetes/kubernetes/issues/131009
kubectl set image deployment/<deployment-name> <container-name>=<registry>/ingress-nginx:<patched-tag>
kubectl rollout status deployment/<deployment-name>
kubectl get pods -o jsonpath='{.items[*].spec.containers[*].image}'
# For Helm-managed releases
helm upgrade <release-name> <chart> --set image.tag=<patched-tag>
Verify the fix landed
# 1. Confirm the running version matches the fixed-in version from the advisory:
# https://https://github.com/kubernetes/kubernetes/issues/131009
# Use the platform-specific version probe above.
# 2. Re-scan with your vulnerability scanner (Nessus, Qualys, Tenable, OpenVAS).
# The scanner should no longer flag CVE-2025-1974 on the patched target.
# 3. Inspect recent service / kernel logs for crash loops or rollback events.
journalctl -u <service> --since "10 minutes ago"
dmesg --since "10 minutes ago"
If you can't patch immediately
Apply only mitigations documented by the vendor. If no official workaround is published, the patched build is the only supported remediation. While you plan the upgrade window:
- Restrict network reach. Put ingress-nginx behind a VPN, an allow-listed reverse proxy, or a firewall rule limiting source IPs to the addresses that legitimately need access. This shrinks the attack surface without changing the application.
- Disable internet exposure of the management interface if your firewall allows it. Most exploit chains for this class of bug require reachability to a specific HTTP endpoint or service port. Remove that reachability and the bug is unreachable for the moment.
- Increase logging and alerting on the affected service. Even if the workaround does not block the exploit, fast detection of an attempt is a meaningful control.
How to verify the fix worked
- Confirm the running version of ingress-nginx matches or exceeds the patched build the vendor specifies. The CVE record under References lists the fixed version explicitly.
- Check service logs for restart messages and verify the service came up clean after the upgrade. A failed restart that silently rolls back to the unpatched binary is a common operational mistake.
- Review the audit log for any suspicious access during the period the system was unpatched. Pre-patch exploitation leaves traces; failed login bursts, unexpected file uploads, and new admin accounts are common indicators. If the host was reachable from the internet during the exposure window, assume the IoC hunt is mandatory rather than optional.
- Re-run a vulnerability scanner (Nessus, Qualys, Tenable, OpenVAS) against the host after patching. The scanner should no longer flag this CVE on the same target. If it still does, double-check that you upgraded the right component, since many products bundle several services and only one of them may carry the fix.
Frequently asked questions
Related fixes
Other vulnerabilities in the same area that are worth patching alongside this one:
- How to Fix CVE-2023-1174: CWE-266 Incorrect Privilege Assignment in minikube — CWE-266 Incorrect Privilege Assignment in minikube
- How to Fix CVE-2026-39884: Cwe-88: improper neutralization of argument delimiters flaw in mcp-server-kubernetes — Cwe-88: improper neutralization of argument delimiters flaw in mcp-server-kubernetes
- How to Fix CVE-2026-24512: Input Validation Flaw in ingress-nginx , Input Validation Flaw in ingress-nginx
- How to Fix CVE-2026-1580: Input Validation Flaw in ingress-nginx , Input Validation Flaw in ingress-nginx
- How to Fix CVE-2026-4342: ingress-nginx comment-based nginx configuration injection in ingress-nginx , ingress-nginx comment-based nginx configuration injection in ingress-nginx
Is CVE-2025-1974 being exploited in the wild?
There are no public reports of in-the-wild exploitation at the time of this writing, and it is not currently listed in CISA KEV. That does not mean exploitation will not happen. Patch on the vendor timeline regardless.
Does the patch require a reboot?
It depends on the deployment. Ingress-nginx updates that replace running services usually need at minimum a service restart; some require a host reboot. Check the vendor release notes linked under References for the exact post-upgrade steps.
What if my version of ingress-nginx is end-of-life?
End-of-life builds will not receive the fix. The vendor's published guidance in cases like this is to upgrade to a supported branch first, then apply the patched build. Running an EOL release on an internet-reachable interface is the higher risk.
References
- Official vendor advisory: https://https://github.com/kubernetes/kubernetes/issues/131009
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-1974
- CISA KEV catalog entry: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
*This guide was assembled from the official vendor advisory, the NVD record, and the CISA KEV listing on 2026-05-25. Always confirm against the vendor's advisory before applying changes in production. Byline: Sai Kiran Pandrala.*