CVE-2023-34091
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 39 - wyżej niż 39% wszystkich znanych CVE
Streszczenie
Kyverno, silnik polityk zaprojektowany dla Kubernetes, w wersjach przed 1.10.0 pozwalał zasobom zdefiniowanym z polem `deletionTimestamp` na obejście polityk walidacji, generowania lub modyfikacji. Zasoby oczekujące na usunięcie były świadomie zwolnione z przetwarzania, co mogło umożliwić złośliwym użytkownikom manipulację politykami.
Ocena ryzyka
Organizacja może być narażona na ataki, w których złośliwi użytkownicy wykorzystują funkcję finalizatorów Kubernetes do obejścia polityk Kyverno, co może prowadzić do nieautoryzowanego dostępu lub manipulacji zasobami.
Rekomendacja
Zaleca się aktualizację Kyverno do wersji 1.10.0 lub nowszej, aby zlikwidować tę podatność. Należy również przeanalizować i dostosować polityki bezpieczeństwa w Kubernetes.
Inne podatności w Kyverno
Zobacz wszystkie- CVE-2026-124441Wysokie
Kyverno w wersji przed 1.19.2 zawiera podatność typu authorization bypass, która pozwala tenantom w przestrzeniach nazw generować dowolne rodzaje zasobów w dowolnej przestrzeni nazw poprzez szablonowanie rodzaju i przestrzeni nazw reguły generate zmiennymi. Atakujący może utworzyć Policy i wyzwalający ConfigMap we własnej przestrzeni nazw, powodując zapis przez uprzywilejowany background-controller NetworkPolicies lub RoleBindings do przestrzeni nazw ofiar lub kube-system.
- CVE-2026-124440Krytyczne
Kyverno od wersji 1.19.1 przed 1.19.2 zawiera podatność typu authorization bypass w apiCall namespace clamp, która pozwala dzierżawcom przestrzeni nazw na wysyłanie żądań API między przestrzeniami nazw i o zasięgu klastra poprzez dołączanie zniekształconych procentowych sekwencji ucieczki do urlPath. Atakujący mogą tworzyć polityki w przestrzeni nazw, których apiCall działa jako konto usługi kontrolera admission, aby odczytywać zasoby innych przestrzeni nazw i tworzyć mutujące webhooki, eskalując do uprawnień administratora klastra.
- CVE-2026-122321Krytyczne
Kyverno w wersji 1.18.0 przed 1.19.2 zawiera obejście weryfikacji podpisu w verifyImages, ponieważ wyniki weryfikacji są buforowane według ciągu referencji obrazu (np. tagu), a nie powiązane z zweryfikowanym skrótem, więc trafienia w pamięć podręczną pomijają sprawdzanie podpisów i atestacji. Atakujący mogący przesyłać obciążenia i zmieniać tag rejestru może rozgrzać pamięć podręczną podpisanym obrazem, przestawić tag i doprowadzić do przyjęcia niezweryfikowanego obrazu z przypiętym skrótem przez mutateDigest.
- CVE-2026-122313Krytyczne
Kyverno od wersji 1.17.0 przed 1.19.2 zawiera podatność na eskalację uprawnień umożliwiającą najemcom o zasięgu przestrzeni nazw modyfikowanie zasobów w innych przestrzeniach nazw poprzez wynik CEL targetMatchConstraints.expression w NamespacedMutatingPolicy bez sprawdzeń przestrzeni nazw. Atakujący mogą wyemitować dosłowny cel, taki jak RoleBinding innego najemcy, który kontroler w tle o zasięgu klastra następnie zmodyfikuje, dodając podmioty atakującego lub zmieniając Role, NetworkPolicies i ConfigMaps.
- CVE-2026-122311Krytyczne
Kyverno od wersji 1.16.0 przed 1.19.2 nie waliduje segmentów ścieżki w argumencie zasobu resource.get() i resource.post(), umożliwiając politykom CEL o zasięgu przestrzeni nazw wyjście poza swoją przestrzeń nazw. Najemcy mogący tworzyć NamespacedValidatingPolicy mogą wstawiać segmenty .., aby odczytywać i zapisywać dowolne obiekty klastra przy użyciu konta usługi kontrolera dopuszczania, prowadząc do przejęcia klastra.
- CVE-2026-122310Krytyczne
Kyverno od wersji 1.19.1 przed 1.19.2 waliduje urlPath w context.apiCall polityki po jego oczyszczeniu, ale wykonuje surową ścieżkę, której fragment lub zapytanie klient Kubernetes odrzuca. Użytkownik o zasięgu przestrzeni nazw mogący tworzyć politykę może ukryć segmenty ../ za # lub ?, aby dotrzeć do punktów końcowych o zasięgu klastra przy użyciu konta usługi Kyverno, uzyskując uprawnienia administratora klastra.
- CVE-2026-122304Krytyczne
Kyverno od wersji 1.17.0 przed 1.19.2 zawiera podatność na obejście autoryzacji umożliwiającą administratorom przestrzeni nazw wyjście poza ograniczenia przestrzeni nazw, ponieważ kontroler czyszczenia buduje kontekst ładowania z polityką nil. Atakujący mogą tworzyć CleanupPolicy w przestrzeni nazw z wpisami kontekstu apiCall lub globalReference, aby odczytywać Secrets z innych przestrzeni nazw i modyfikować validatingwebhookconfigurations przy użyciu konta usługi kontrolera czyszczenia.
- CVE-2026-122303Krytyczne
Kyverno od wersji 1.17.0 przed 1.19.2 zawiera podatność na obejście autoryzacji umożliwiającą najemcom przestrzeni nazw nadpisywanie zasobów w innych przestrzeniach nazw poprzez NamespacedMutatingPolicy mutate-existing targetMatchConstraints.expression. Atakujący mogą zwrócić literał mapy CEL fabrykujący cel z wybraną przez atakującego metadata.namespace, powodując nadpisanie przez uprzywilejowany kontroler w tle Secrets, Deployments lub polityk w całym klastrze.
- CVE-2026-122302Krytyczne
Kyverno przed wersją 1.19.2 zawiera podatność na eskalację uprawnień umożliwiającą administratorom przestrzeni nazw tworzenie zasobów poza ich RBAC, ponieważ sprawdzenia dopuszczania reguł generate weryfikują uprawnienia kontrolera, a nie autora. Atakujący mogą tworzyć politykę w przestrzeni nazw z regułami generate skierowanymi do innych przestrzeni nazw lub rodzajów o zasięgu klastra, powodując tworzenie lub klonowanie zasobów w całym klastrze przez kontroler w tle.
- CVE-2026-100706Krytyczne
Kyverno przed wersją 1.19.1 nieprawidłowo waliduje zakodowane w URL segmenty ścieżki w apiCall urlPath polityki, co pozwala tenantom namespace'ów ominąć ograniczenia per-namespace i tworzyć obiekty w innych namespace'ach jako ServiceAccount kontrolera admission. Atakujący mogą wykorzystać percent-encoded sekwencje traversal katalogów do tworzenia obiektów MutatingWebhookConfiguration w całym klastrze lub obiektów PolicyException w namespace kyverno, co umożliwia eskalację uprawnień do administratora klastra.
Oryginalny opis (angielski, źródło NVD)
Kyverno is a policy engine designed for Kubernetes. In versions of Kyverno prior to 1.10.0, resources which have the `deletionTimestamp` field defined can bypass validate, generate, or mutate-existing policies, even in cases where the `validationFailureAction` field is set to `Enforce`. This situation occurs as resources pending deletion were being consciously exempted by Kyverno, as a way to reduce processing load as policies are typically not applied to objects which are being deleted. However, this could potentially result in allowing a malicious user to leverage the Kubernetes finalizers feature by setting a finalizer which causes the Kubernetes API server to set the `deletionTimestamp` and then not completing the delete operation as a way to explicitly to bypass a Kyverno policy. Note that this is not applicable to Kubernetes Pods but, as an example, a Kubernetes Service resource can be manipulated using an indefinite finalizer to bypass policies. This is resolved in Kyverno 1.10.0. There is no known workaround.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

