Skip to content
Heist/ feed
Back to feed
High

External Secrets Operator's BeyondTrust Provider has Insecure Secret Retrieval

Type: advisorySources: OSV

External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. A vulnerability was discovered in the BeyondTrust provider implementation for External Secrets Operator versions 0.10.1 through 0.19.2. The provider previously retrieved Kubernetes secrets directly, without validating the namespace context or the type of secret store. This allowed unauthorized cross-namespace secret access, violating security boundaries and potentially exposing sensitive credentials. In version 0.20.0, the provider code was updated to use the `resolvers.SecretKeyRef` utility, which enforces namespace validation and only allows cross-namespace access for `ClusterSecretStore` types. This ensures secrets are only retrieved from the correct namespace, mitigating the risk of unauthorized access. All users should upgrade to the latest version containing this fix. As a workaround, use a policy engine such as Kyverno or OPA to prevent using BeyondTrust provider and/or validate the `(Cluster)SecretStore` and ensure the namespace may only be set when using a `ClusterSecretStore`.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2025-62159
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 23:07 UTC · Revision 1

Source evidence

External Secrets Operator's BeyondTrust Provider has Insecure Secret Retrieval

core-osv · Original source

Published 10 Oct 2025, 22:23 UTC

External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. A vulnerability was discovered in the BeyondTrust provider implementation for External Secrets Operator versions 0.10.1 through 0.19.2. The provider previously retrieved Kubernetes secrets directly, without validating the namespace context or the type of secret store. This allowed unauthorized cross-namespace secret access, violating security boundaries and potentially exposing sensitive credentials. In version 0.20.0, the provider code was updated to use the `resolvers.SecretKeyRef` utility, which enforces namespace validation and only allows cross-namespace access for `ClusterSecretStore` types. This ensures secrets are only retrieved from the correct namespace, mitigating the risk of unauthorized access. All users should upgrade to the latest version containing this fix. As a workaround, use a policy engine such as Kyverno or OPA to prevent using BeyondTrust provider and/or validate the `(Cluster)SecretStore` and ensure the namespace may only be set when using a `ClusterSecretStore`.

osv:CVE-2025-62159
Complete source record
{
  "id": "6106f30e764487545fe5eec7e087a0aabc35610f3726fa650416207b65bae604",
  "url": "https://osv.dev/vulnerability/CVE-2025-62159",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "External Secrets Operator's BeyondTrust Provider has Insecure Secret Retrieval",
    "summary": "External Secrets Operator reads information from a third-party service and automatically injects the values as Kubernetes Secrets. A vulnerability was discovered in the BeyondTrust provider implementation for External Secrets Operator versions 0.10.1 through 0.19.2. The provider previously retrieved Kubernetes secrets directly, without validating the namespace context or the type of secret store. This allowed unauthorized cross-namespace secret access, violating security boundaries and potentially exposing sensitive credentials. In version 0.20.0, the provider code was updated to use the `resolvers.SecretKeyRef` utility, which enforces namespace validation and only allows cross-namespace access for `ClusterSecretStore` types. This ensures secrets are only retrieved from the correct namespace, mitigating the risk of unauthorized access. All users should upgrade to the latest version containing this fix. As a workaround, use a policy engine such as Kyverno or OPA to prevent using BeyondTrust provider and/or validate the `(Cluster)SecretStore` and ensure the namespace may only be set when using a `ClusterSecretStore`.",
    "evidence": "osv:CVE-2025-62159",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2025-62159",
      "aliases": [
        "CVE-2025-62159",
        "GHSA-vf79-2pjx-phpp"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/external-secrets/external-secrets",
              "type": "GIT",
              "events": [
                {
                  "introduced": "bc97ae06f669c17903ad3b170a71dd4fd47045c8"
                },
                {
                  "fixed": "0eb3034729751e66f629c7dea0c9ac3f10a9a26f"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0.10.1"
                      },
                      {
                        "fixed": "0.20.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0.10.1"
                      },
                      {
                        "last_affected": "0.19.2"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "helm-chart-0.19.2",
            "v0.19.2",
            "v0.19.1",
            "v0.19.0",
            "v0.18.2",
            "v0.18.1",
            "v0.18.0",
            "helm-chart-0.18.0-rc1",
            "v0.18.0-rc1",
            "v0.17.1-rc1",
            "helm-chart-0.17.0",
            "v0.17.0",
            "v0.16.2",
            "v0.16.1",
            "helm-chart-0.16.0",
            "v0.16.0",
            "helm-chart-0.15.1",
            "v0.15.1",
            "v0.15.0",
            "v0.14.4",
            "v0.14.3",
            "helm-chart-0.14.2",
            "v0.14.2",
            "helm-chart-0.14.1",
            "v0.14.1",
            "v0.14.0",
            "v0.13.0",
            "v0.1.0-esoctl",
            "v0.1.0-render",
            "v0.12.1",
            "v0.12.0",
            "v0.11.0",
            "v0.10.7",
            "helm-chart-0.10.6",
            "v0.10.6",
            "v0.10.5",
            "v0.10.4",
            "v0.10.3",
            "helm-chart-0.10.2",
            "v0.10.2",
            "helm-chart-0.10.1",
            "v0.10.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-62159.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:32.120495339Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/62xxx/CVE-2025-62159.json",
        "https://github.com/external-secrets/external-secrets/security/advisories/GHSA-vf79-2pjx-phpp",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-62159"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-284"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/62xxx/CVE-2025-62159.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-62159",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 499221,
  "published_at": "2025-10-10T22:23:19.071+00:00"
}