CVE-2026-18949: Odh-dashboard: odh-dashboard: clusterrole grants cluster-wide crud on secrets and rbac management resources
A flaw was found in odh-dashboard. This vulnerability allows an attacker, who has compromised the dashboard's Service Account (SA) token, to exploit overly broad permissions granted to the SA. This enables the attacker to escalate their privileges to cluster-administrator level, gain access to sensitive data like credentials and keys across the entire cluster, and disrupt multi-tenant isolation.
Other sources
Description
Description of problem The odh-dashboard ClusterRole grants cluster-wide CRUD on secrets, configmaps, PVCs (lines 56-68) and cluster-wide RBAC management (rolebindings, clusterrolebindings, roles at lines 134-148).
Verified on live OCP 4.21 cluster: the dashboard SA can read 631 secrets cluster-wide and create ClusterRoleBindings, enabling cluster-admin escalation post-compromise.
File: manifests/core-bases/base/sa-rbac/cluster-role.yaml
NOTE: This finding is NOT covered by CVE-2026-2353, which tracks other RHOAI operators (feast, notebook-controller, model-controller, trustyai, DSPO, KubeRay) but not the dashboard.
Impact:
631 secrets readable cluster-wide (registry credentials, TLS keys, AWS credentials)
ClusterRoleBinding creation confirmed (full cluster-admin escalation)
Secret deletion cluster-wide
Persistent backdoor access via CRB creation
Multi-tenant isolation BROKEN
Prerequisites RHOAI/ODH with dashboard component enabled
Compromise of the dashboard SA token (via container escape, dependency vulnerability, supply chain attack, or the header spoofing chain from the red team assessment)
The dashboard SA token is mounted in 8-9 containers within the dashboard pod, increasing the attack surface
Steps to Reproduce Verify dashboard SA permissions:
oc auth can-i --list --as=system:serviceaccount:opendatahub:odh-dashboard Verify cluster-wide secret access:
oc get secrets --all-namespaces --as=system:serviceaccount:opendatahub:odh-dashboard --no-headers | wc -l Expected: 631+ Verify CRB creation:
oc auth can-i create clusterrolebindings --as=system:serviceaccount:opendatahub:odh-dashboard Expected: yes Actual results ODH on OCP 4.21 (verified 2026-06-16):
Dashboard SA can read 631 secrets cluster-wide
Dashboard SA can create ClusterRoleBindings (cluster-admin escalation)
Dashboard SA can delete secrets cluster-wide
Dashboard SA cannot create pods in kube-system (partial mitigation)
8-9 containers in the dashboard pod share this SA token
Expected results Secret/configmap/PVC access should be scoped to dashboard and user namespaces only (namespace-scoped Role + RoleBinding)
ClusterRoleBindings CRUD should be removed (namespace-scoped rolebindings should suffice for image puller roles)
Apply least-privilege per namespace
Reproducibility Always - 100% reproducible.
Found in what build CONFIRMED VULNERABLE:
ODH on OCP 4.21 (odh-dashboard image: odh-dashboard-f45cd6bb4)
LIKELY VULNERABLE:
All RHOAI 2.x and 3.x versions with dashboard enabled (same ClusterRole definition)
Describe any workarounds Restrict access to the opendatahub namespace (limit who can compromise the dashboard pod)
Implement egress NetworkPolicy to restrict dashboard outbound traffic
Monitor for unexpected ClusterRoleBinding creation (audit log alerting)
Additional information Root Cause:
manifests/core-bases/base/sa-rbac/cluster-role.yaml lines 56-68 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: odh-dashboard rules: - apiGroups: [""] resources: [secrets, configmaps, persistentvolumeclaims] verbs: [create, delete, get, list, patch, update, watch] # lines 134-148 - apiGroups: [rbac.authorization.k8s.io] resources: [rolebindings, clusterrolebindings, roles] verbs: [list, get, create, patch, delete] CWEs:
CWE-250: Execution with Unnecessary Privileges
CWE-269: Improper Privilege Management
Discovery Method:
Project Glasswing (Mythos) automated security audit, verified via live cluster testing on OCP 4.21.
— Red Hat
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Edit manifests/core-bases/base/sa-rbac/cluster-role.yaml to eliminate the odh-dashboard ClusterRole rules that grant cluster-wide CRUD on secrets/configmaps/PVCs (lines 56-68) and cluster-wide RBAC management (rolebindings/clusterrolebindings/roles at lines 134-148). Replace with namespace-scoped Role(s) and RoleBinding(s) limited to the dashboard and user namespaces so the dashboard SA cannot create ClusterRoleBindings or delete/read secrets cluster-wide.
Kubernetes RBAC (manifests/core-bases/base/sa-rbac/cluster-role.yaml: ClusterRole odh-dashboard) rules[].resources scope (switch cluster-wide ClusterRole to namespace-scoped Role/RoleBindings) = namespace-scoped Role + RoleBinding for dashboard/user namespaces only (remove cluster-wide CRUD on secrets/configmaps/PVCs and RBAC objects such as rolebindings/clusterrolebindings/roles) - Compensating control
Implement a NetworkPolicy to restrict odh-dashboard outbound traffic (egress NetworkPolicy as stated: “Implement egress NetworkPolicy to restrict dashboard outbound traffic”).
- Compensating control
Monitor for unexpected ClusterRoleBinding creation using audit log alerting (“Monitor for unexpected ClusterRoleBinding creation (audit log alerting)”).
- Compensating control
Restrict access to the opendatahub namespace so fewer principals can compromise the dashboard pod (“Restrict access to the opendatahub namespace (limit who can compromise the dashboard pod)”).
Event History
Frequently Asked Questions
What is the severity of CVE-2026-18949?
The severity of CVE-2026-18949 is rated as high with a score of 8.8.
How do I fix CVE-2026-18949?
To fix CVE-2026-18949, review and restrict the permissions granted to the Service Account used by the odh-dashboard.
What impact does CVE-2026-18949 have on my system?
CVE-2026-18949 allows an attacker to escalate privileges to cluster-administrator level if they compromise the dashboard's Service Account token.
Who is affected by CVE-2026-18949?
Users of the odh-dashboard who have not restricted permissions for Service Accounts are affected by CVE-2026-18949.
What are the potential exploits of CVE-2026-18949?
Exploiting CVE-2026-18949 can lead to unauthorized access to sensitive resources and cluster-wide CRUD operations.