{"id":"CVE-2026-26287","aliases":["EUVD-2026-93468","GHSA-q7hv-xx6h-q2x8","GO-2026-6667"],"status":"published","title":"External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration","description":"External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Starting in version 0.10.0 and prior to version 1.3.2, 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`. Version 1.3.2 contains a patch.","severity":{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00244,"percentile":0.15784,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-696"],"published":"2026-10-06T15:29:25Z","modified":"2026-10-28T02:30:44Z","fixes":[{"ecosystem":"Go","package":"github.com/external-secrets/external-secrets","fixed_in":["1.3.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/external-secrets/external-secrets","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.10.0"},{"fixed":"1.3.2"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/external-secrets/external-secrets","ranges":[{"type":"SEMVER","events":[{"introduced":"0.10.0"},{"fixed":"1.3.2"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/external-secrets/external-secrets","ranges":[{"type":"SEMVER","events":[{"introduced":"0.10.0"},{"fixed":"1.3.2"}]}]}],"products":[{"vendor":"external-secrets","product":"external-secrets"}],"references":[{"url":"https://github.com/external-secrets/external-secrets/security/advisories/GHSA-q7hv-xx6h-q2x8","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/external-secrets/external-secrets/pull/5901","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/external-secrets/external-secrets/commit/25aa09275861e3ed6fc5d2a1a60b9ac3df4a93ba","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/external-secrets/external-secrets/releases/tag/v1.3.2","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/advisories/GHSA-q7hv-xx6h-q2x8"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/26xxx/CVE-2026-26287.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-26287","tags":["advisory"]},{"url":"https://github.com/external-secrets/external-secrets","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-26287","title":"External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration","description":"External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Starting in version 0.10.0 and prior to version 1.3.2, 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`. Version 1.3.2 contains a patch.","status":"published","published":"2026-10-06T15:31:56.088Z","modified":"2026-10-06T17:21:44.292Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-696"],"updated_at":"2026-11-02T13:38:20.971157Z"}],"euvd":[{"id":"EUVD-2026-93468","description":"External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Starting in version 0.10.0 and prior to version 1.3.2, 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`. Version 1.3.2 contains a patch.","status":"published","published":"2026-10-06T15:31:56Z","modified":"2026-10-06T17:21:44Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N","level":"high"}],"updated_at":"2026-11-02T17:27:37.140631Z"}],"ghsa":[{"id":"GHSA-q7hv-xx6h-q2x8","title":"External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration","description":"## Summary\nA 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`.\n\n## Impact\nA 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.\n\n## Mitigations\nUntil you upgrade, you can reduce risk by:\n- disabling webhook generators if not needed (or denying `generators.external-secrets.io/v1alpha1` `Webhook` via an admission policy);\n- restricting RBAC: limit who can create generators of kind `Webhook`;\n- enforcing an admission policy (OPA Gatekeeper / Kyverno) requiring referenced secrets to be labeled `external-secrets.io/type=webhook`;\n- restricting egress from external-secrets controller pods to an allowlist (kubernetes `NetworkPolicy` / service mesh egress policy).\n\n## References\n- PR #5901 (fix: webhook initialization order)","status":"published","published":"2026-10-06T15:29:25Z","modified":"2026-10-06T15:29:26Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N","level":"high"}],"cwes":["CWE-696"],"updated_at":"2026-11-02T14:41:27.036917Z"}],"nvd":[{"id":"CVE-2026-26287","description":"External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Starting in version 0.10.0 and prior to version 1.3.2, 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`. Version 1.3.2 contains a patch.","status":"published","published":"2026-10-06T16:17:07.18Z","modified":"2026-10-06T20:03:40.69Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-696"],"updated_at":"2026-11-02T14:12:54.486849Z"}],"osv":[{"id":"CVE-2026-26287","title":"External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration","description":"External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. Starting in version 0.10.0 and prior to version 1.3.2, 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`. Version 1.3.2 contains a patch.","status":"published","published":"2026-10-06T15:31:56.088Z","modified":"2026-10-28T02:30:44.525168795Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N","level":"high"}],"cwes":["CWE-696"],"updated_at":"2026-11-02T15:44:59.80315Z"},{"id":"GHSA-q7hv-xx6h-q2x8","title":"External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration","description":"## Summary\nA 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`.\n\n## Impact\nA 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.\n\n## Mitigations\nUntil you upgrade, you can reduce risk by:\n- disabling webhook generators if not needed (or denying `generators.external-secrets.io/v1alpha1` `Webhook` via an admission policy);\n- restricting RBAC: limit who can create generators of kind `Webhook`;\n- enforcing an admission policy (OPA Gatekeeper / Kyverno) requiring referenced secrets to be labeled `external-secrets.io/type=webhook`;\n- restricting egress from external-secrets controller pods to an allowlist (kubernetes `NetworkPolicy` / service mesh egress policy).\n\n## References\n- PR #5901 (fix: webhook initialization order)","status":"published","published":"2026-10-06T15:29:25Z","modified":"2026-10-20T00:55:45.081616683Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N","level":"high"}],"cwes":["CWE-696"],"updated_at":"2026-11-02T15:46:54.055966Z"},{"id":"GO-2026-6667","title":"External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration in github.com/external-secrets/external-secrets","description":"External Secrets Operator: label enforcement bypass in webhook generator enables secret exfiltration in github.com/external-secrets/external-secrets","status":"published","published":"2026-10-20T00:20:51Z","modified":"2026-10-20T00:45:10.097500666Z","updated_at":"2026-11-02T15:47:03.11707Z"}]}}
