CRITICAL🇬🇧 English

CVE-2026-22822

External Secrets Operator: nieautoryzowany dostęp do sekretów między przestrzeniami nazw

CVSS 9.3v4.0pub. 2026-01-21upd. 2026-06-30

External Secrets Operator w wersjach od 0.20.2 do 1.2.0 zawiera podatność umożliwiającą pobieranie sekretów Kubernetes z dowolnych przestrzeni nazw (cross-namespace) z pominięciem mechanizmów bezpieczeństwa. Jest to szczególnie groźne w środowiskach wielodostępnych, gdzie separacja namespace'ów stanowi kluczową granicę bezpieczeństwa.

Pokaż oryginał (EN)

External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Starting in version 0.20.2 and prior to version 1.2.0, the `getSecretKey` template function, while introduced for senhasegura Devops Secrets Management (DSM) provider, has the ability to fetch secrets cross-namespaces with the roleBinding of the external-secrets controller, bypassing our security mechanisms. This function was completely removed in version 1.2.0, as everything done with that templating function can be done in a different way while respecting External Secrets Operator's safeguards As a workaround, use a policy engine such as Kubernetes, Kyverno, Kubewarden, or OPA to prevent the usage of `getSecretKey` in any ExternalSecret resource.

🤖 Analiza AI
Jak działa

Funkcja szablonowa `getSecretKey`, pierwotnie wprowadzona z myślą o dostawcy senhasegura Devops Secrets Management (DSM), korzysta z uprawnień (roleBinding) kontrolera external-secrets. Dzięki temu lokalny użytkownik posiadający prawo do tworzenia lub modyfikowania zasobów ExternalSecret może użyć tej funkcji do pobierania sekretów z przestrzeni nazw innych niż jego własna. Mechanizm omija wbudowane zabezpieczenia operatora, które normalnie ograniczają dostęp do sekretów wyłącznie w obrębie tej samej przestrzeni nazw. W wersji 1.2.0 funkcja `getSecretKey` została całkowicie usunięta.

Skutki

Atakujący z lokalnym dostępem uprzywilejowanym (PR:L) do klastra Kubernetes może odczytać, a pośrednio narazić na ujawnienie lub modyfikację, poufne sekrety (np. hasła, tokeny, klucze API) należące do innych zespołów lub aplikacji działających w odrębnych przestrzeniach nazw, co może prowadzić do kompromitacji całego klastra.

Mitygacja

Należy zaktualizować External Secrets Operator do wersji 1.2.0 lub nowszej, w której funkcja `getSecretKey` została całkowicie usunięta. Jako obejście (workaround) dla wersji wcześniejszych zaleca się wdrożenie silnika polityk (np. Kyverno, Kubewarden, OPA lub natywnych polityk Kubernetes) blokującego użycie funkcji `getSecretKey` w zasobach ExternalSecret.

Kogo dotyczy

External Secrets Operator w wersjach od 0.20.2 (włącznie) do 1.2.0 (wyłącznie)

Uwagi

Podatność sklasyfikowana jako CWE-863 (Incorrect Authorization). Poprawka dostępna w commicie 17d3e22b8d3fbe339faf8515a95ec06ec92b1feb. Problem zgłoszony pierwotnie w issue #5690 repozytorium projektu na GitHub.

CVSS Vector
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • External Secrets Operator

    APP
    External-Secrets
    0.20.2 – 1.2.0 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Container
CWE
Referencje

Powiązane podatności

CVE-2024-36540CRITICAL9.8PL ✓ten sam produkt

Nieprawidłowe uprawnienia w External Secrets Operator umożliwiają privilege escalation

CVE-2026-34984HIGH7.1ten sam produkt

External Secrets Operator reads information from a third-party service and automatically injects the values as...

CVE-2024-45041HIGH8.3ten sam produkt

External Secrets Operator is a Kubernetes operator that integrates external secret management systems. The ext...