CVE-2026-71208
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 11 - wyżej niż 11% wszystkich znanych CVE
Streszczenie
Proces reconciliacji cluster-controller w KubeSphere (pkg/utils/clusterclient/clusterclient.go, addCluster) przetwarza konfigurację połączenia każdego zasobu niestandardowego Cluster i natychmiast wywołuje Discovery.ServerVersion wobec punktu końcowego API Kubernetes określonego w CRD, który jest parsowany tylko pod kątem składni URL (url.Parse) bez listy dozwolonych/zabronionych dla adresów loopback, prywatnych RFC1918, link-local czy adresów metadanych chmury (np. 169.254.169.254).
Ocena ryzyka
Atakujący może wykorzystać tę podatność do przeprowadzenia ataków SSRF, uzyskując dostęp do wewnętrznych usług lub metadanych chmury, co może prowadzić do wycieku danych lub eskalacji uprawnień.
Rekomendacja
Zaleca się dodanie walidacji adresów IP w konfiguracji połączeń, blokując adresy wewnętrzne i metadane chmury.
Inne podatności w KubeSphere
Zobacz wszystkie- CVE-2026-91923Wysokie
KubeSphere w wersjach do 4.1.3 zawiera podatność typu server-side request forgery w endpoincie weryfikacji poświadczeń git, który przyjmuje niezwalidowane URL-e dostarczone przez wywołującego bez ograniczeń allowlisty. Uwierzytelnieni atakujący mogą podać dowolne URL-e, aby dotrzeć do usług wewnętrznych i wykraść poświadczenia basic-auth z Sekretów w dowolnym namespace.
- CVE-2026-55998Średnie
Endpoint /v3/import/{token}_{clusterId}.yaml pobiera obiekt klastra przed walidacją tokena. Gdy prawidłowy identyfikator klastra odnosi się do klastra z skonfigurowanymi sekretami rejestru prywatnego, dereferencja nil w pkg/systemtemplate/private_registry.go powoduje zwrócenie HTTP 502 Bad Gateway. Dla nieistniejących identyfikatorów klastra endpoint zwraca HTTP 200. Ta różnica w kodach odpowiedzi stanowi wiarygodne źródło do enumeracji.
Oryginalny opis (angielski, źródło NVD)
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).

