external-secrets
v0.17.0
4 Service Accounts
4 Workloads
46 Bindings
2 Critical
1 High
1 Medium
42 Low
Description
External secret management for Kubernetes
Overview
Identity | Namespace | Automount | Secrets | Permissions | Workloads | Risk |
---|---|---|---|---|---|---|
external-secrets | default | ❌ | — | 40 | 1 | Critical |
external-secrets-cert-controller | default | ❌ | — | 6 | 1 | Critical |
bitwarden-sdk-server | default | ❌ | — | 0 | 1 | — |
external-secrets-webhook | default | ❌ | — | 0 | 1 | — |
Numbers in the last two columns indicate how many bindings or workloads involve each ServiceAccount.
Identities
🤖 external-secrets
Namespace: default
| Automount: ❌
🔑 Permissions (40)
Role | Resource | Verbs | Risk | Tags |
---|---|---|---|---|
ClusterRole external-secrets-controller | core/secrets | create · delete · get · list · patch · update · watch | Critical | ClusterWideSecretAccess CredentialAccess DataExposure InformationDisclosure Persistence (+4 more) |
ClusterRole external-secrets-controller | core/configmaps | get · list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole external-secrets-controller | generators.external-secrets.io/acraccesstokens | get · list · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clusterexternalsecrets | get · list · patch · update · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clusterexternalsecrets/finalizers | get · patch · update | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clusterexternalsecrets/status | get · patch · update | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/clustergenerators | get · list · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clusterpushsecrets | get · list · patch · update · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clusterpushsecrets/finalizers | get · patch · update | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clusterpushsecrets/status | get · patch · update | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clustersecretstores | get · list · patch · update · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clustersecretstores/finalizers | get · patch · update | Low | |
ClusterRole external-secrets-controller | external-secrets.io/clustersecretstores/status | get · patch · update | Low | |
Role external-secrets-leaderelection | core/configmaps | create · get · patch · update | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/ecrauthorizationtokens | get · list · watch | Low | |
ClusterRole external-secrets-controller | core/events | create · patch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/externalsecrets | create · delete · get · list · patch · update · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/externalsecrets/finalizers | get · patch · update | Low | |
ClusterRole external-secrets-controller | external-secrets.io/externalsecrets/status | get · patch · update | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/fakes | get · list · watch | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/gcraccesstokens | get · list · watch | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/generatorstates | create · delete · deletecollection · get · list · patch · update · watch | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/githubaccesstokens | get · list · watch | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/grafanas | get · list · watch | Low | |
Role external-secrets-leaderelection | coordination.k8s.io/leases | create · get · patch · update | Low | |
ClusterRole external-secrets-controller | core/namespaces | get · list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole external-secrets-controller | generators.external-secrets.io/passwords | get · list · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/pushsecrets | create · delete · get · list · patch · update · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/pushsecrets/finalizers | get · patch · update | Low | |
ClusterRole external-secrets-controller | external-secrets.io/pushsecrets/status | get · patch · update | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/quayaccesstokens | get · list · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/secretstores | get · list · patch · update · watch | Low | |
ClusterRole external-secrets-controller | external-secrets.io/secretstores/finalizers | get · patch · update | Low | |
ClusterRole external-secrets-controller | external-secrets.io/secretstores/status | get · patch · update | Low | |
ClusterRole external-secrets-controller | core/serviceaccounts | get · list · watch | Low | |
ClusterRole external-secrets-controller | core/serviceaccounts/token | create | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/stssessiontokens | get · list · watch | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/uuids | get · list · watch | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/vaultdynamicsecrets | get · list · watch | Low | |
ClusterRole external-secrets-controller | generators.external-secrets.io/webhooks | get · list · watch | Low |
⚠️ Potential Abuse (8)
The following security risks were found based on the above permissions:
- Read secrets cluster-wide
- Read secrets in a namespace
- Modify secrets cluster-wide
- Modify secrets in a namespace
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
- List Namespaces (Cluster Reconnaissance)
📦 Workloads (1)
Kind | Name | Container | Image |
---|---|---|---|
Deployment | external-secrets | external-secrets | oci.external-secrets.io/external-secrets/external-secrets:v0.17.0 |
🤖 external-secrets-cert-controller
Namespace: default
| Automount: ❌
🔑 Permissions (6)
Role | Resource | Verbs | Risk | Tags |
---|---|---|---|---|
ClusterRole external-secrets-cert-controller | core/secrets | get · list · patch · update · watch | Critical | ClusterWideSecretAccess CredentialAccess DataExposure InformationDisclosure SecretAccess |
ClusterRole external-secrets-cert-controller | admissionregistration.k8s.io/validatingwebhookconfigurations | get · list · patch · update · watch | Medium | InformationDisclosure Reconnaissance WebhookReconnaissance |
ClusterRole external-secrets-cert-controller | apiextensions.k8s.io/customresourcedefinitions | get · list · patch · update · watch | Low | |
ClusterRole external-secrets-cert-controller | core/endpoints | get · list · watch | Low | |
ClusterRole external-secrets-cert-controller | core/events | create · patch | Low | |
ClusterRole external-secrets-cert-controller | coordination.k8s.io/leases | create · get · patch · update | Low |
⚠️ Potential Abuse (4)
The following security risks were found based on the above permissions:
- Read secrets cluster-wide
- Read secrets in a namespace
- List ValidatingWebhookConfigurations (Reconnaissance)
📦 Workloads (1)
Kind | Name | Container | Image |
---|---|---|---|
Deployment | external-secrets-cert-controller | cert-controller | oci.external-secrets.io/external-secrets/external-secrets:v0.17.0 |
🤖 bitwarden-sdk-server
Namespace: default
| Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (1)
Kind | Name | Container | Image |
---|---|---|---|
Deployment | bitwarden-sdk-server | bitwarden-sdk-server | ghcr.io/external-secrets/bitwarden-sdk-server:v0.3.1 |
🤖 external-secrets-webhook
Namespace: default
| Automount: ❌
🔑 Permissions (0)
No explicit RBAC bindings.
📦 Workloads (1)
Kind | Name | Container | Image |
---|---|---|---|
Deployment | external-secrets-webhook | webhook | oci.external-secrets.io/external-secrets/external-secrets:v0.17.0 |