GitHub Advisoryadvisory · Go

GHSA-q7hv-xx6h-q2x8 External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration

HIGH Published 2026-10-06 Modified 2026-10-06 Official page ↗
Aliases
CVE-2026-26287
Ecosystem
Go
Packages
github.com/external-secrets/external-secrets
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Weaknesses
CWE-696
Reviewed
2026-10-06

Affected packages

• Go github.com/external-secrets/external-secrets: >= 0.10.0, < 1.3.2 → fixed in 1.3.2

Description

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/v1alpha1` `Webhook` via 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)

Related

Alias · CVE (1)

  • CVE-2026-26287 External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. vulnerability

Weakness · CWE (1)

  • CWE-696 Incorrect Behavior Order weakness

References