Published on March 26, 2025Documentation Index
Fetch the complete documentation index at: https://help.onetsolutions.net/llms.txt
Use this file to discover all available pages before exploring further.
Scope
The flaw affects Ingress NGINX Controller (not to be confused with NGINX Ingress Controller, the F5/NGINX-maintained project, which is a different product). Vulnerable versions:- all versions
< v1.11.0 v1.11.0tov1.11.4v1.12.0
How the attack works
When you install Ingress NGINX, an admission controller is deployed inside the cluster. Its job: validateIngress objects before they are applied to NGINX. The problem: this webhook is reachable on the cluster network, without authentication, by default.
An attacker who can reach the webhook (from a compromised pod, a poorly-isolated internal service, or sometimes directly from outside if the Service is exposed) sends a malicious Ingress object. The webhook processes the object, builds an NGINX configuration from it, and validates it by running the NGINX binary… which at that point interprets the injected payload. RCE in the controller pod.
Then comes the cascade. The controller pod typically has rights to read Secrets across all namespaces (because it mounts TLS certificates). Once RCE is achieved, the attacker reads every secret in the cluster — internal credentials, cloud tokens, API keys. Cluster takeover.
Patching
Upgrade Ingress NGINX Controller to the latest stable version available — past anything listed as vulnerable. Follow your usual Helm/manifest procedure depending on your install.If you cannot patch right away
Two surface-reduction measures to apply in the meantime:1. Restrict network access to the webhook
ANetworkPolicy that only lets the Kubernetes API server talk to the admission webhook:
2. Temporarily disable the admission webhook
If theNetworkPolicy is not workable and you intend to patch right after, you can disable the admission component. With Helm:
Ingress objects — so preventive safety on malformed configs — but you close the attack path until the patch is in.
Wrap-up
This is an RCE → secret theft → takeover chain that requires no authentication, on a component many clusters expose by default. A PoC is public. Patch, and use the moment to double-check theNetworkPolicy around every one of your admission webhooks.
For questions, open a ticket from your OnetSolutions client area.
