Database/Container, Kubernetes & orchestration
NGINX Ingress Controller: spoofable forwarded headers bypass external authentication
Impact
When the ingress controller is configured with the ExternalAuth policy or Ingress external authentication, client-supplied X-Forwarded-Prefix, X-Forwarded-URI, X-Original-URI and X-Forwarded-Method headers are passed unsanitized into the internal auth_request subrequest. An unauthenticated caller can therefore make the external auth provider evaluate a path and method of the attacker's choosing and be let through to a protected backend. On a GPU cluster this is the front door: anything fronted by this ingress and relying on external auth - inference endpoints, notebooks, model registries, internal dashboards - is reachable without credentials. F5 states this is data-plane only, with no control-plane exposure.
Who can reach it
Anyone who can send HTTP requests to the ingress data plane, including the public internet if the ingress is internet-facing. No authentication required.
What to do
Upgrade NGINX Ingress Controller to a fixed release per F5 article K000162611; F5 notes versions past End of Technical Support were not evaluated. Rollout is a controller deployment update and pod restart - no node reboot - but it briefly cycles the data plane, so roll it per replica. As an interim step, strip the four headers from inbound requests at the edge before they reach the controller, or have the external auth provider ignore them.
References
Related entries
- runc: Host runc binary overwritten from inside a containerCVE-2019-5736 · runcHigh
- Envoy: ext-authz header handling flaw allows bypassing the external authorization serviceCVE-2021-32777 · EnvoyHigh
- Envoy: URI fragment treated as part of the pathCVE-2021-32779 · EnvoyHigh
- Envoy: Processing continues after a local reply, causing undefined behaviourCVE-2021-32781 · EnvoyHigh
- Envoy: Malicious client constructs permanently valid credentials in the OAuth filterCVE-2023-35941 · EnvoyHigh
- podman build and buildah: race with --jobs during a malicious Containerfile build breaks out to the hostCVE-2024-11218 · podman build / buildah (concurrent --jobs Containerfile build race)High
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.