You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you run skipper as ingress controller, users with permissions to create an Ingress and Service type ExternalName create routes that enables them to use skipper network access to access internal services.
You can allow list targets of an ExternalName by using -kubernetes-only-allowed-external-names=true and allow list via regular expressions -kubernetes-allowed-external-name '^[a-z][a-z0-9-.]+[.].allowed.example$'
The product receives a request, message, or directive from an upstream component, but the product does not sufficiently preserve the original source of the request before forwarding the request to an external actor that is outside of the product's control sphere. This causes the product to appear to be the source of the request, leading it to act as a proxy or other intermediary between the upstream component and the external actor.
Learn more on MITRE.
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Learn more on MITRE.
Impact
If you run skipper as ingress controller, users with permissions to create an Ingress and Service type ExternalName create routes that enables them to use skipper network access to access internal services.
Patches
https://github.com/zalando/skipper/releases/tag/v0.24.0 disables Kubernetes ExternalName by default.
Workarounds
You can allow list targets of an ExternalName by using
-kubernetes-only-allowed-external-names=trueand allow list via regular expressions-kubernetes-allowed-external-name '^[a-z][a-z0-9-.]+[.].allowed.example$'References
https://kubernetes.io/docs/concepts/services-networking/service/#externalname