Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain RBAC to create Webhook generators
-
ExploitCreate Webhook generator targeting victim secret + malicious URL
-
ExecutionInitialization bug clears EnforceLabels, label check skipped
-
ImpactController exfiltrates secret to attacker endpoint
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Incorrect behavior order
|
| Exploitation Conditions | Requires: (1) ESO running an affected version (>= 0.10.0 and < 1.3.2); (2) the webhook generator feature in use (generators.external-secrets.io/v1alpha1 Webhook); and (3) the attacker holding Kubernetes RBAC rights to create Webhook generator resources - this is the primary gating prerequisite and is why the CVSS vector carries PR:L rather than PR:N. Limiting factors that reduce realistic risk: exploitation is impossible without delegated generator-creation permissions, so single-tenant or tightly-RBAC'd clusters are largely unaffected; the attack is also blunted by the vendor-listed mitigations (disabling/denying Webhook generators via admission policy, Kyverno/OPA enforcement of the required label, and NetworkPolicy egress allowlists that prevent the controller from reaching an arbitrary malicious URL). Clusters that do not use webhook generators at all are not exploitable. |
| Impact | This is a legitimate but conditional access-control flaw in the External Secrets Operator (ESO) webhook generator, rated CVSS 7.1 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N). The vector shows network attack surface (the Kubernetes API) with low complexity and no user interaction, but critically PR:L - meaning an attacker must already hold Kubernetes RBAC permission to create Webhook generators, so this is NOT an unauthenticated remote issue. The underlying defect (CWE-696, incorrect behavior/initialization order) reliably clears the EnforceLabels flag, so once the privilege prerequisite is met exploitation is deterministic rather than probabilistic. No EPSS score, KEV listing, or public POC is present in the provided data; per precision rules the exploitation status is 'no public exploit identified at time of analysis.' The absence of KEV and EPSS data means real-world exploitation signal is UNKNOWN, not zero. Weighing these signals together, this is a real but moderate-priority issue: the high confidentiality impact (secret exfiltration) is gated behind a non-trivial RBAC privilege and the need for webhook generators to be in use, so it is most relevant to multi-tenant clusters where generator-creation rights are delegated to semi-trusted users. Single-admin clusters face limited practical exposure. |
| Exploit ScenarioDerived | In a multi-tenant Kubernetes cluster, a user who has been granted RBAC permission to create Webhook generators (but not to read a particular victim Secret) creates a Webhook generator that references that unlabeled victim Secret and points at an attacker-controlled URL. Because the initialization-order bug clears the EnforceLabels flag, ESO skips the 'external-secrets.io/type=webhook' label check that should have blocked the operation, and the controller reads the Secret and sends its contents to the malicious endpoint. No public exploit code is identified at the time of analysis, though the deterministic nature of the bug makes reproduction straightforward for anyone with the required generator-creation rights. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
A label-enforcement bypass in the External Secrets Operator (ESO) webhook generator lets any Kubernetes principal that is permitted to create webhook generator resources point a generator at a victim's Secret that was never labelled for webhook use, and then have its contents exfiltrated to an attacker-controlled URL. The flaw affects ESO releases from 0.10.0 up to (but not including) 1.3.2 and stems from an initialization-order bug that cleared the EnforceLabels flag after it had been set, so the provider-side check for the external-secrets.io/type=webhook label was skipped instead of failing. Exploitation is conditional: it requires an affected version, the webhook generator feature in use, and delegated RBAC rights to create generators.external-secrets.io/v1alpha1 Webhook objects, which is why the assessed vector carries PR:L; clusters that never use webhook generators or that tightly constrain generator creation are not exposed. No public exploit code was identified at time of analysis and the issue is not in CISA KEV, and a vendor patch is available in 1.3.2.
RemediationAI
Vendor-released patch: upgrade External Secrets Operator to version 1.3.2 or later, which contains the initialization-order fix from PR #5901 (commit 25aa09275861e3ed6fc5d2a1a60b9ac3df4a93ba) and is published at https://github.com/external-secrets/external-secrets/releases/tag/v1.3.2; full details are in advisory GHSA-q7hv-xx6h-q2x8 (https://github.com/external-secrets/external-secrets/security/advisories/GHSA-q7hv-xx6h-q2x8). If the upgrade cannot be scheduled immediately, the vendor-listed compensating controls are, in rough order of effectiveness: stop using the feature entirely by disabling or denying the generators.external-secrets.io/v1alpha1 Webhook kind through an admission policy (the trade-off is loss of webhook-based secret generation for teams that rely on it); tighten RBAC so that only a small, audited set of service accounts may create Webhook generators, which directly removes the PR:L precondition this attack depends on, though it requires a review of existing ClusterRole/Role bindings and may break automated provisioning pipelines; deploy an OPA Gatekeeper or Kyverno policy that rejects any Webhook generator whose referenced Secret lacks the external-secrets.io/type=webhook label - this compensates for the skipped in-controller check but must be kept in sync with ESO's label conventions and can cause false rejections during label migrations; and restrict controller-pod egress with a Kubernetes NetworkPolicy or service-mesh egress policy allowing only known webhook endpoints, with the caveat that the webhook generator is designed to reach external URLs, so an over-broad allowlist leaves residual exposure while an over-narrow one breaks legitimate generators. Rotate any Secret credentials that were reachable by an over-privileged generator-creating principal before the fix is applied, since disclosure cannot be undone by patching alone.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
External Secrets Operator is a Kubernetes controller that synchronises secrets from external providers (Vault, AWS Secrets Manager, and so on) into native Secret objects, and it exposes a set of 'generators' - including a v1alpha1 Webhook generator - that allows a generator resource to call out to an arbitrary HTTP endpoint and materialise the response. The Webhook generator validates that any referenced Kubernetes Secret carries the marker label external-secrets.io/type=webhook before reading it, precisely so that a user able to author a generator cannot use it as a read primitive against unrelated Secrets. CVE-2026-26287 is categorised as CWE-696 (Incorrect Behavior Order), and the accompanying fix PR #5901 is a trivial statement reordering inside generators/v1/webhook/webhook.go: the assignment that resets the embedded webhook client was executed after the flag setting, silently zeroing the EnforceLabels state that gates the label check. The observable consequence is a control-flow inversion - the operation that should have aborted with the message "secret does not contain needed label 'external-secrets.io/type: webhook'" succeeds, the referenced Secret data is collected, and the controller then POSTs it to the webhook URL. Because the affected component is a Go module (pkg:go/github.com_external-secrets_external-secrets), the issue propagates to every downstream build and container image that vendors ESO versions in the 0.10.0-1.3.1 range; the confidentiality impact is complete for any Secret the attacker names, which is why the score is high on C, while the independent assessment correctly confines impact to disclosure (C:H/I:N/A:N) rather than any write or denial-of-service capability.
Know when Kubernetes gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Exploitation is via the Kubernetes API (AV:N, AC:L) but requires granted RBAC to create Webhook generators (PR:L); impact is pure secret disclosure, so C:H with I:N/A:N, diverging from the vendor's I:L.
Primary rating from Vendor (https://github.com/external-secrets/external-secrets).
CVSS VectorVendor: https://github.com/external-secrets/external-secrets
DescriptionCVE.org
Summary
A bug in the webhook generator initialization order incorrectly cleared the label-enforcement flag (EnforceLabels) after it was set, resulting in the provider-side check for external-secrets.io/type=webhook being skipped (and the operation to succeed while it should have failed with secret does not contain needed label 'external-secrets.io/type: webhook'. Update secret label to use it with webhook.
Impact
A user with the permission to create webhook generator can set the webhook generator to a victim' secret (which was not previously labelled for webhook's use), and exfiltrate it to a malicious URL.
Mitigations
Until you upgrade, you can reduce risk by:
- disabling webhook generators if not needed (or denying
generators.external-secrets.io/v1alpha1Webhookvia an admission policy); - restricting RBAC: limit who can create generators of kind
Webhook; - enforcing an admission policy (OPA Gatekeeper / Kyverno) requiring referenced secrets to be labeled
external-secrets.io/type=webhook; - restricting egress from external-secrets controller pods to an allowlist (kubernetes
NetworkPolicy/ service mesh egress policy).
References
- PR #5901 (fix: webhook initialization order)
Technical POC Analysis
CWE-696 (Incorrect Behavior Order), in the External Secrets Operator (ESO) webhook generator's Generate method: generators/v1/webhook/webhook.go (Go module github.com/external-secrets/external-secret…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
External Secrets Operator (ESO) versions 0.10.0 through 1.3.1 contain a label-enforcement bypass in the webhook generator that could let an authenticated Kubernetes principal with delegated generator-creation rights exfiltrate unlabeled Secrets to an attacker-controlled URL. This affects organizations running ESO with the webhook generator feature and broad enough RBAC permissions, potentially exposing sensitive credentials stored in Kubernetes. The vendor has released a patch (1.3.2), and no public exploit identified at time of analysis.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Kubernetes
View allA critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c
Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter
A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne
Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Fluentd configuration injection in the kube-logging Logging operator before 6.6.0 allows a namespace-scoped user who can
Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass
EUVD-2026-93468
GHSA-q7hv-xx6h-q2x8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB