Przejdź do treści
Alerty bezpieczeństwa 4 min czytania

Kyverno: 7 krytycznych podatności izolacji przestrzeni nazw i weryfikacji obrazów (CVE-2026-122311 i inne)

Siedem krytycznych podatności w Kyverno: polityki tworzone w jednej przestrzeni nazw pozwalają czytać i zmieniać zasoby całego klastra Kubernetes, a cache verifyImages omija weryfikację podpisów...

Podsumowanie

ParametrWartość
CVE IDCVE-2026-122311
Źródło alertuGitHub Advisory - Krytyczna podatność
Rok publikacji CVE2026
Data publikacji2026-11-05
ProducentKyverno
ProduktKyverno
CVSS Score9.9 (Krytyczny)
EPSS ScoreBrak danych
CISA KEVNie
RansomwareNie potwierdzono

Opis podatności

Źródło: NVD, GitHub Security Advisories (kyverno/kyverno)

Kyverno to silnik polityk dla Kubernetes (kontroler admission), często używany do egzekwowania zasad bezpieczeństwa w klastrach współdzielonych przez wiele zespołów. Wydanie 1.19.2 naprawia siedem krytycznych podatności, z których większość pozwala użytkownikowi uprawnionemu tylko w swojej przestrzeni nazw (namespace) wyjść poza nią i działać z uprawnieniami kont serwisowych (ServiceAccount) Kyverno — w skrajnym przypadku przejmując cały klaster:

  • CVE-2026-122311 (CVSS 9.9) — wersje od 1.16.0 przed 1.19.2 nie walidują segmentów ścieżki w argumencie resource funkcji resource.get() i resource.post(). Użytkownik, który może utworzyć NamespacedValidatingPolicy, wstawia segmenty .. i odczytuje oraz zapisuje dowolne obiekty klastra z użyciem ServiceAccount kontrolera admission, co prowadzi do przejęcia klastra.
  • CVE-2026-122310 (CVSS 9.9) — wersja 1.19.1 waliduje urlPath w context.apiCall polityki po jego oczyszczeniu, ale wykonuje surową ścieżkę, której fragment lub zapytanie klient Kubernetes odrzuca. Użytkownik z uprawnieniami w przestrzeni nazw ukrywa segmenty ../ za znakiem # lub ? i dociera do endpointów na poziomie klastra z ServiceAccount Kyverno, uzyskując uprawnienia administratora klastra (niepełna poprawka wcześniejszego błędu).
  • CVE-2026-122313 (CVSS 9.9) — wersje od 1.17.0 przed 1.19.2: wynik wyrażenia CEL targetMatchConstraints.expression w NamespacedMutatingPolicy nie jest sprawdzany pod kątem przestrzeni nazw. Atakujący wskazuje cel w innej przestrzeni (np. RoleBinding innego zespołu), a działający w całym klastrze background controller modyfikuje go — dodając podmioty atakującego lub zmieniając Role, NetworkPolicy i ConfigMap.
  • CVE-2026-122304 (CVSS 9.9) — wersje od 1.17.0 przed 1.19.2: cleanup controller buduje mechanizm ładowania kontekstu z pustą (nil) polityką. Administrator przestrzeni nazw tworzy CleanupPolicy z wpisami apiCall lub globalReference i z ServiceAccount cleanup controllera odczytuje Secrets z innych przestrzeni oraz modyfikuje validatingwebhookconfigurations.
  • CVE-2026-122303 (CVSS 9.9) — wersje od 1.17.0 przed 1.19.2: w trybie mutate-existing NamespacedMutatingPolicy wyrażenie targetMatchConstraints.expression może zwrócić literał mapy CEL ze sfabrykowanym celem i dowolnym metadata.namespace. Uprzywilejowany background controller nadpisuje wtedy Secrets, Deployments lub polityki w całym klastrze.
  • CVE-2026-122302 (CVSS 9.8) — wersje przed 1.19.2: kontrola reguł generate przy admission sprawdza uprawnienia kontrolera, a nie autora polityki. Administrator przestrzeni nazw tworzy Policy z regułami generate wskazującymi inne przestrzenie lub zasoby klastrowe, a background controller tworzy lub klonuje zasoby w całym klastrze — ponad uprawnienia RBAC autora.
  • CVE-2026-122321 (CVSS 9.1) — wersje od 1.18.0 przed 1.19.2: verifyImages zapamiętuje wyniki weryfikacji w cache pod kluczem będącym referencją obrazu (np. tagiem), a nie zweryfikowanym digestem, więc trafienie w cache pomija sprawdzenie podpisu i atestacji. Atakujący, który może uruchamiać workloady i przestawiać tag w rejestrze, „rozgrzewa” cache podpisanym obrazem, przepina tag i Kyverno dopuszcza niezweryfikowany obraz, przypinając go przez mutateDigest.

Wymagane działania

Zaktualizuj Kyverno do wersji 1.19.2, która naprawia wszystkie siedem podatności. Do czasu aktualizacji:

  • ogranicz prawo tworzenia i modyfikacji polityk przestrzeni nazw (Policy, CleanupPolicy, NamespacedValidatingPolicy, NamespacedMutatingPolicy) do zaufanych administratorów — w klastrach wielodostępnych (multi-tenant) to właśnie najemcy są wektorem ataku,
  • przejrzyj istniejące polityki namespaced pod kątem apiCall, globalReference, resource.get()/resource.post(), reguł generate i wyrażeń targetMatchConstraints,
  • przejrzyj RoleBinding, ClusterRoleBinding, Secrets i validatingwebhookconfigurations pod kątem nieoczekiwanych zmian wykonanych przez ServiceAccount Kyverno,
  • w politykach weryfikacji obrazów odwołuj się do obrazów po digeście, a nie po tagu, i ogranicz prawo przestawiania tagów w rejestrze.

Kogo dotyczy?

Podatności dotyczą organizacji, które używają Kyverno jako silnika polityk w klastrach Kubernetes (także w dystrybucjach zarządzanych, np. OpenShift, EKS, AKS, GKE, jeśli Kyverno zainstalowano samodzielnie lub z platformą). Najwyższe ryzyko dotyczy klastrów współdzielonych przez wiele zespołów lub klientów, w których najemcy mogą tworzyć polityki we własnych przestrzeniach nazw, oraz środowisk polegających na Kyverno w weryfikacji podpisów obrazów w łańcuchu dostaw oprogramowania.

Źródła


Potrzebujesz wsparcia w zabezpieczeniu systemów? Zespół nFlo oferuje usługi zarządzania podatnościami oraz SOC 24/7. Skontaktuj się z nami.

Dowiedz się więcej

Udostępnij:

Porozmawiaj z ekspertem

Masz pytania dotyczące tego tematu? Skontaktuj się z naszym opiekunem.

Opiekun handlowy
Grzegorz Gnych

Grzegorz Gnych

Opiekun handlowy

Odpowiedź w ciągu 24 godzin
Bezpłatna konsultacja
Indywidualne podejście

Podanie numeru telefonu przyspieszy kontakt.

Chcesz obniżyć ryzyko i koszty IT?

Umów bezpłatną konsultację - odpowiemy w ciągu 24h

Odpowiedź w 24h Bezpłatna wycena Bez zobowiązań

Lub pobierz bezpłatny przewodnik:

E-book: Strategia odporności cyfrowej 2026