Механизм согласования кластера и контроллера KubeSphere (pkg/utils/clusterclient/clusterclient.go, addCluster) обрабатывает конфигурацию подключения каждого пользовательского ресурса кластера и немедленно вызывает Discovery().ServerVersion() для указанной CRD конечной точки API Kubernetes, которая анализируется только на синтаксис URL-адреса (url.Parse) без списка разрешений/запретов для обратной связи, частных диапазонов RFC1918, локальные ссылки или адреса облачных метаданных (например, 169.254.169.254). Пользователь, который может создать или обновить CRD кластера, может заставить модули контроллера-менеджера и API-сервера выдавать исходящие запросы к произвольным внутренним конечным точкам или конечным точкам метаданных.
Показать оригинальное описание (EN)
KubeSphere's cluster-controller reconciliation (pkg/utils/clusterclient/clusterclient.go, addCluster) processes every Cluster custom resource's connection configuration and immediately calls Discovery.ServerVersion against the CRD-specified Kubernetes API endpoint, which is parsed only for URL syntax (url.Parse) with no allow/deny-list for loopback, RFC1918 private ranges, link-local, or cloud-metadata addresses (e.g. 169.254.169.254).
Характеристики атаки
Последствия
Строка CVSS v3.1