Description
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).
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| kubesphere | KubeSphere | 4.0.0 – ≤ 4.1.3-rc.0 | — |
References
- https://github.com/ashikmd7/kubeSphere/blob/main/SSRF%20via%20Cluster%20CRD%20KubeConfig/README.md third-party-advisory
- https://github.com/kubesphere/kubesphere third-party-advisory