GHSA-q7hv-xx6h-q2x8: High severity go/github.com/external-secrets/external-secrets vulnerability

Published Oct 6, 2026
·
Updated

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)

Affected Software

1 affected componentFixes available
go/github.com/external-secrets/external-secrets>=0.10.0<1.3.2
1.3.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/github.com/external-secrets/external-secrets to a version that resolves this vulnerability.

    Fixed in 1.3.2
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch PR #5901
  3. Configuration

    Disable webhook generators if they are not needed.

    external-secrets webhook generators webhook generators = disabled
  4. Configuration

    Deny generators.external-secrets.io/v1alpha1 Webhook via an admission policy.

    admission policy allowed resource kind = deny generators.external-secrets.io/v1alpha1 Webhook
  5. Configuration

    Enforce an admission policy requiring referenced secrets to be labeled external-secrets.io/type=webhook.

    OPA Gatekeeper / Kyverno required secret label = external-secrets.io/type=webhook
  6. Configuration

    Update the secret label to external-secrets.io/type=webhook before using it with the webhook generator.

    referenced secret external-secrets.io/type = webhook
  7. Compensating control

    Restrict RBAC so that only authorized users can create generators of kind Webhook.

  8. Compensating control

    Restrict egress from external-secrets controller pods to an allowlist using Kubernetes NetworkPolicy or a service mesh egress policy.

Event History

Oct 6, 2026
Advisory Published
via GitHub·03:29 PM
Data Sourced
via GitHub·03:29 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who can exploit this issue in a cluster?

A user who has permission to create webhook generators can exploit it. They can configure a webhook generator to use a victim secret that is not labeled for webhook use and send its contents to a malicious URL.

2

Is a secret label still enforced for webhook generator references?

No. The affected initialization order clears the EnforceLabels setting after it is configured, so the provider-side check for the external-secrets.io/type=webhook label is skipped.

3

What can be done if an upgrade cannot be applied immediately?

Disable webhook generators if they are not needed, or deny Webhook resources in generators.external-secrets.io/v1alpha1 through an admission policy. Also restrict RBAC for creating Webhook generators, require referenced secrets to carry external-secrets.io/type=webhook through OPA Gatekeeper or Kyverno, and restrict controller-pod egress to an allowlist.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203