elastic-agent
v9.2.4
3 Service Accounts
3 Workloads
68 Bindings
3 Critical
3 High
5 Medium
57 Low
Description
Elastic-Agent Helm Chart
Overview
| Identity | Namespace | Automount | Secrets | Permissions | Workloads | Risk |
|---|---|---|---|---|---|---|
agent-clusterwide-elastic-agent | default | ❌ | — | 20 | 1 | Critical |
agent-pernode-elastic-agent | default | ❌ | — | 20 | 1 | Critical |
kube-state-metrics | default | ✅ | — | 28 | 1 | Critical |
Numbers in the last two columns indicate how many bindings or workloads involve each ServiceAccount.
Identities
🤖 kube-state-metrics
Namespace: default | Automount: ✅
🔑 Permissions (28)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole kube-state-metrics | core/secrets | list · watch | Critical | ClusterWideSecretAccess CredentialAccess DataExposure InformationDisclosure SecretAccess |
ClusterRole kube-state-metrics | core/configmaps | list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole kube-state-metrics | admissionregistration.k8s.io/mutatingwebhookconfigurations | list · watch | Medium | InformationDisclosure Reconnaissance WebhookReconnaissance |
ClusterRole kube-state-metrics | core/resourcequotas | list · watch | Medium | InformationDisclosure QuotaTampering Reconnaissance ResourceConfiguration |
ClusterRole kube-state-metrics | admissionregistration.k8s.io/validatingwebhookconfigurations | list · watch | Medium | InformationDisclosure Reconnaissance WebhookReconnaissance |
ClusterRole kube-state-metrics | certificates.k8s.io/certificatesigningrequests | list · watch | Low | |
ClusterRole kube-state-metrics | batch/cronjobs | list · watch | Low | |
ClusterRole kube-state-metrics | apps/daemonsets | list · watch | Low | |
ClusterRole kube-state-metrics | apps/deployments | list · watch | Low | |
ClusterRole kube-state-metrics | core/endpoints | list · watch | Low | |
ClusterRole kube-state-metrics | autoscaling/horizontalpodautoscalers | list · watch | Low | |
ClusterRole kube-state-metrics | networking.k8s.io/ingresses | list · watch | Low | |
ClusterRole kube-state-metrics | batch/jobs | list · watch | Low | |
ClusterRole kube-state-metrics | coordination.k8s.io/leases | list · watch | Low | |
ClusterRole kube-state-metrics | core/limitranges | list · watch | Low | InformationDisclosure Reconnaissance ResourceConfiguration |
ClusterRole kube-state-metrics | core/namespaces | list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole kube-state-metrics | networking.k8s.io/networkpolicies | list · watch | Low | |
ClusterRole kube-state-metrics | core/nodes | list · watch | Low | |
ClusterRole kube-state-metrics | core/persistentvolumeclaims | list · watch | Low | |
ClusterRole kube-state-metrics | core/persistentvolumes | list · watch | Low | |
ClusterRole kube-state-metrics | policy/poddisruptionbudgets | list · watch | Low | |
ClusterRole kube-state-metrics | core/pods | list · watch | Low | |
ClusterRole kube-state-metrics | apps/replicasets | list · watch | Low | |
ClusterRole kube-state-metrics | core/replicationcontrollers | list · watch | Low | |
ClusterRole kube-state-metrics | core/services | list · watch | Low | |
ClusterRole kube-state-metrics | apps/statefulsets | list · watch | Low | |
ClusterRole kube-state-metrics | storage.k8s.io/storageclasses | list · watch | Low | |
ClusterRole kube-state-metrics | storage.k8s.io/volumeattachments | list · watch | Low |
⚠️ Potential Abuse (11)
The following security risks were found based on the above permissions:
- Read secrets cluster-wide
- Read secrets in a namespace
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
- List Namespaces (Cluster Reconnaissance)
- List ValidatingWebhookConfigurations (Reconnaissance)
- List MutatingWebhookConfigurations (Reconnaissance)
- Read LimitRanges (Namespace Information Disclosure)
- Read ResourceQuotas (Namespace Information Disclosure)
- Read All ResourceQuotas (Cluster-wide Information Disclosure)
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | kube-state-metrics | kube-state-metrics | registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.16.0 |
🤖 agent-clusterwide-elastic-agent
Namespace: default | Automount: ❌
🔑 Permissions (20)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole agent-clusterWide-elastic-agent-default | core/nodes/proxy | get · list · watch | Critical | ClusterAdminAccess CodeExecution ElevationOfPrivilege LateralMovement (+1 more) |
ClusterRole agent-clusterWide-elastic-agent-default | core/configmaps | get · list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole agent-clusterWide-elastic-agent-default | core/events | get · list · watch | Medium | InformationDisclosure OperationalData Reconnaissance |
ClusterRole agent-clusterWide-elastic-agent-default | batch/cronjobs | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | apps/daemonsets | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | apps/deployments | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | batch/jobs | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | coordination.k8s.io/leases | create · get · update | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/namespaces | get · list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole agent-clusterWide-elastic-agent-default | core/nodes | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/nodes/metrics | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/nodes/stats | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/persistentvolumeclaims | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/persistentvolumeclaims/status | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/persistentvolumes | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/pods | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | apps/replicasets | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | core/services | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | apps/statefulsets | get · list · watch | Low | |
ClusterRole agent-clusterWide-elastic-agent-default | storage.k8s.io/storageclasses | get · list · watch | Low |
⚠️ Potential Abuse (6)
The following security risks were found based on the above permissions:
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
- Read events cluster-wide
- List Namespaces (Cluster Reconnaissance)
- Node proxy GET RCE via WebSocket
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| Deployment | agent-clusterwide-elastic-agent | agent | docker.elastic.co/elastic-agent/elastic-agent:9.2.4 |
🤖 agent-pernode-elastic-agent
Namespace: default | Automount: ❌
🔑 Permissions (20)
| Role | Resource | Verbs | Risk | Tags |
|---|---|---|---|---|
ClusterRole agent-perNode-elastic-agent-default | core/nodes/proxy | get · list · watch | Critical | ClusterAdminAccess CodeExecution ElevationOfPrivilege LateralMovement (+1 more) |
ClusterRole agent-perNode-elastic-agent-default | core/configmaps | get · list · watch | High | ConfigMapAccess DataExposure InformationDisclosure |
ClusterRole agent-perNode-elastic-agent-default | core/events | get · list · watch | Medium | InformationDisclosure OperationalData Reconnaissance |
ClusterRole agent-perNode-elastic-agent-default | batch/cronjobs | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | apps/daemonsets | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | apps/deployments | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | batch/jobs | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | coordination.k8s.io/leases | create · get · update | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/namespaces | get · list · watch | Low | ClusterStructure InformationDisclosure Reconnaissance |
ClusterRole agent-perNode-elastic-agent-default | core/nodes | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/nodes/metrics | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/nodes/stats | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/persistentvolumeclaims | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/persistentvolumeclaims/status | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/persistentvolumes | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/pods | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | apps/replicasets | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | core/services | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | apps/statefulsets | get · list · watch | Low | |
ClusterRole agent-perNode-elastic-agent-default | storage.k8s.io/storageclasses | get · list · watch | Low |
⚠️ Potential Abuse (6)
The following security risks were found based on the above permissions:
- Read ConfigMaps cluster-wide
- Read ConfigMaps in a namespace
- Read events cluster-wide
- List Namespaces (Cluster Reconnaissance)
- Node proxy GET RCE via WebSocket
📦 Workloads (1)
| Kind | Name | Container | Image |
|---|---|---|---|
| DaemonSet | agent-pernode-elastic-agent | agent | docker.elastic.co/elastic-agent/elastic-agent:9.2.4 |