CVE-2026-77596
KrytyczneCVSS 9.6Streszczenie
W Kubeflow Pipelines przed wersją 2.18.0 punkty końcowe HTTP do przesyłania pipeline'ów i ich wersji nie wykonują kontroli SubjectAccessReview, gdy docelowa przestrzeń nazw jest pusta, a REQUIRE_NAMESPACE_FOR_PIPELINES domyślnie wynosi false. Użytkownik o niskich uprawnieniach może tworzyć współdzielone pipeline'y lub wstrzykiwać własne wersje do istniejących pipeline'ów bez wymaganych uprawnień zapisu. Jeśli serwer API jest bezpośrednio osiągalny bez proxy uwierzytelniającego, ten sam obejściowy mechanizm może wykorzystać nieuwierzytelniony wywołujący.
Ocena ryzyka
Wstrzyknięta specyfikacja może zostać wykonana w przestrzeni nazw innego najemcy przez aktywne, nieprzypięte zadania cykliczne, co prowadzi do naruszenia izolacji i wykonania kodu w kontekście konta usługi obciążenia. Organizacje z bezpośrednim dostępem do API bez proxy są szczególnie narażone na anonimowe wykorzystanie.
Rekomendacja
Zaktualizuj Kubeflow Pipelines do wersji 2.18.0 lub nowszej oraz upewnij się, że serwer API jest chroniony przez uwierzytelniające proxy. Rozważ włączenie REQUIRE_NAMESPACE_FOR_PIPELINES, aby wymuszać jawną przestrzeń nazw.
Inne podatności w Kubeflow Pipelines
Zobacz wszystkie- CVE-2026-88984Wysokie
W Kubeflow Pipelines przed wersją 2.16.1 serwer API w trybie wieloużytkownikowym traktuje pustą przestrzeń nazw używaną przez współdzielone lub globalne pipeline'y jako wyjątek autoryzacyjny dla operacji modyfikacji i usuwania. Uwierzytelniony użytkownik może modyfikować lub usuwać współdzielone definicje i wersje pipeline'ów bez wymaganych uprawnień Kubernetes RBAC, naruszając ich integralność i dostępność.
- CVE-2026-88981Wysokie
W Kubeflow Pipelines przed wersją 2.18.0 ścieżka pobierania artefaktów frontendu dla source=s3 lub source=minio akceptuje providerInfo.Params.endpoint, a ścieżka logów podów akceptuje metadane punktu końcowego S3 z statusu workflow, bez wymagania zgodności z konfiguracją przechowywania operatora. W domyślnej konfiguracji standalone z wyłączoną autoryzacją nieuwierzytelniony wywołujący może zmusić współdzielony pod ml-pipeline-ui do połączenia z dowolnymi osiągalnymi hostami i zwrócenia danych odpowiedzi.
- CVE-2026-88980Wysokie
W Kubeflow Pipelines przed wersją 2.18.0 trasa frontendu GET /artifacts/get akceptuje source=http lub source=https z kontrolowanymi przez wywołującego wartościami bucket i key, a isAllowedResourceName zezwala na w pełni cyfrowy host dziesiętny, który parser URL konwertuje na adres IPv4. Domyślny ALLOWED_ARTIFACT_DOMAIN_REGEX i konfiguracja standalone z wyłączoną autoryzacją pozwalają nieuwierzytelnionemu wywołującemu pobierać wewnętrzne zasoby HTTP i odbierać ich treść odpowiedzi.
- CVE-2026-54745Krytyczne
Kubeflow Pipelines przed wersją 2.17.0 zawiera nieuwierzytelnioną podatność SSRF w trasie /_proxy/ w frontend/server/proxy-middleware.ts. Funkcja _routePathWithReferer() akceptuje dowolny adres URL HTTP lub HTTPS kontrolowany przez atakującego i przekazuje go do createProxyMiddleware bez listy dozwolonych hostów ani filtrowania adresów loopback, link-local, RFC1918 czy klastrowych. Trasa jest dostępna bez autoryzacji, co pozwala na przekazywanie żądań do wewnętrznych usług i zwracanie odpowiedzi atakującemu. Problem naprawiono w wersji 2.17.0.
- CVE-2026-118761Wysokie
W Kubeflow Pipelines przed wersją 2.18.0 serwer API dekompresował przesyłane archiwa pipeline'ów bez odpowiedniego ograniczenia rozmiaru rozpakowywanych danych podczas lokalizowania lub odczytu pliku pipeline'u. Małe archiwum ZIP lub tar skompresowane gzipem może zużyć nieproporcjonalnie dużo pamięci i wyczerpać zasoby serwera API. Przetwarzanie przesyłania wieloczęściowego pipeline'ów i wersji pipeline'ów wykonuje dekompresję przed autoryzacją przestrzeni nazw, więc osiągalny wywołujący nie potrzebuje pozytywnej decyzji autoryzacyjnej o utworzeniu pipeline'u. Problem naprawiono w wersji 2.18.0.
- CVE-2026-118760Średnie
W Kubeflow Pipelines od wersji 0.5.1 do 2.17.0 trasy artefaktów frontendu nie sprawdzały, czy uwierzytelniony użytkownik ma uprawnienia do żądanej przestrzeni nazw. Użytkownik znający lokalizację artefaktu mógł wybrać przestrzeń nazw innego tenanta lub pominąć ją, aby odczytać zawartość artefaktów, takie jak zbiory danych, modele lub wyniki potoków.
- CVE-2026-118759Wysokie
W Kubeflow Pipelines przed wersją 2.18.0 handler GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log pobierał logi bez sprawdzenia uprawnień wywołującego do wskazanego runu. Osoba znająca identyfikator runu i poda/noda mogła odczytać logi z uprawnieniami serwera API, a w przypadku logów na żywo identyfikator noda był przyjmowany jako nazwa poda bez weryfikacji przynależności do runu.
- CVE-2026-118758Wysokie
W Kubeflow Pipelines przed wersją 2.18.0 handler artefaktów GET /artifacts/get?source=volume nie ograniczał ścieżki pliku podanej przez wywołującego do wybranego wolumenu. Osoba znająca zamontowany wolumen mogła użyć path traversal do odczytu plików poza nim, jeśli proces serwujący artefakty miał do nich dostęp.
Oryginalny opis (angielski, źródło NVD)
Kubeflow Pipelines enables users to build and deploy portable, scalable machine learning workflows. Prior to 2.18.0, the multi-user HTTP endpoints POST /apis/v2beta1/pipelines/upload and POST /apis/v2beta1/pipelines/upload_version call canUploadVersionedPipeline, which returns without SubjectAccessReview when the target namespace is empty while REQUIRE_NAMESPACE_FOR_PIPELINES defaults to false. A low-privilege tenant can create shared pipelines or inject attacker-controlled versions into existing shared pipelines without the required write permission; if the API server is directly reachable without an authenticating proxy, an unauthenticated caller can exploit the same bypass, while deployments protected by such a proxy do not expose anonymous access. An enabled unpinned recurring run that follows the latest version can then execute the injected specification in another tenant's namespace under that workload's service account, while pinned or embedded-specification runs are not automatically substituted. This issue is fixed in version 2.18.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

