Описание
Skipper Ingress Controller Allows Unauthorized Access to Internal Services via ExternalName
Impact
When running Skipper as an Ingress controller, users with permissions to create an Ingress and a Service of type ExternalName can create routes that enable them to use Skipper's network access to reach internal services.
Patches
https://github.com/zalando/skipper/releases/tag/v0.24.0 disables Kubernetes ExternalName by default.
Workarounds
Developers 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$'
References
https://kubernetes.io/docs/concepts/services-networking/service/#externalname
Ссылки
- https://github.com/zalando/skipper/security/advisories/GHSA-mxxc-p822-2hx9
- https://nvd.nist.gov/vuln/detail/CVE-2026-24470
- https://github.com/zalando/skipper/commit/a4c87ce029a58eb8e1c2c1f93049194a39cf6219
- https://github.com/zalando/skipper/releases/tag/v0.24.0
- https://kubernetes.io/docs/concepts/services-networking/service/#externalname
Пакеты
github.com/zalando/skipper
< 0.24.0
0.24.0
Связанные уязвимости
Skipper is an HTTP router and reverse proxy for service composition. Prior to version 0.24.0, when running Skipper as an Ingress controller, users with permissions to create an Ingress and a Service of type ExternalName can create routes that enable them to use Skipper's network access to reach internal services. Version 0.24.0 disables Kubernetes ExternalName by default. As a workaround, developers can allow list targets of an ExternalName and allow list via regular expressions.