Kubeflow Dashboard Security: Authentication, Notebook Isolation and Cloud Metadata Risk
The short answer
Kubeflow is not a single web application. It is a set of Kubernetes services, notebooks, pipelines, model registries, service accounts, ingress components, and cloud integrations. The security question is therefore not simply “is the dashboard exposed?” It is whether an untrusted user can cross from the dashboard into another profile, a privileged notebook, the Kubernetes API, node credentials, or the cloud metadata service.
The exact impact depends on the deployment, version, identity provider, Istio policy, RBAC, and cloud configuration. A public dashboard, an authentication bypass, and a vulnerable component are different findings and should not be reported as interchangeable facts.
Why Kubeflow needs a separate threat model
The central dashboard is a control plane for other components. A user may reach notebook servers, pipelines, Katib, model registries, or custom links from one interface. Notebook workloads then run as pods with their own service accounts, volumes, network paths, and credentials.
That creates several trust boundaries:
| Boundary | What can go wrong | What to verify |
|---|---|---|
| Internet to ingress | Dashboard or callback endpoints are reachable without the expected identity checks | Ingress routes, TLS, identity-provider configuration, negative tests |
| User to profile | A viewer can enumerate or modify another user’s namespace | Profile ownership, contributor roles, Kubernetes RoleBindings |
| Dashboard to component | A link or proxy forwards requests with excessive authority | Route policy, upstream authentication, authorization logs |
| Notebook to cluster | A notebook service account can read or change cluster resources | RBAC rules, mounted tokens, pod security settings |
| Pod to cloud | A workload can reach node or cloud metadata credentials | Egress policy, metadata hop limit, cloud IAM role |
| Model artifact to runtime | A downloaded model or notebook executes untrusted code | Artifact provenance, scanning, isolated execution |
Kubeflow’s Profiles and Namespaces documentation describes profiles as a multi-user isolation mechanism. It also documents the owner, viewer, and editor bindings created for a profile. Those bindings are a starting point for review, not proof that a custom deployment has preserved the intended isolation.
Authentication is the first control, not the last
Put the dashboard behind an identity-aware ingress and an explicitly configured OIDC flow. Confirm the complete login path: redirect URI validation, issuer and audience checks, token expiry, logout behavior, group-to-role mapping, and failure handling. Test the result from a fresh browser session and from an expired or altered token.
Do not treat a working login screen as evidence of authorization. A user who can authenticate may still be mapped to a profile with more privileges than intended. Review the claims that reach the gateway and the headers or identities used by downstream policies. Any user-controlled identity header must be overwritten by a trusted proxy and validated at the point of authorization.
Disable automatic profile creation unless it is an explicit product requirement. Kubeflow documents that automatic creation can make a first-time user the owner of a new profile, which may allow that user to add or remove contributors. In a shared cluster, that is a governance decision, not a harmless convenience.
Profile, notebook, and RBAC review
For every profile, list owners, contributors, namespaces, service accounts, volumes, and network policies. Ask four concrete questions:
- Can a viewer create or edit a notebook server?
- Which Kubernetes API objects can the notebook service account read or change?
- Are secrets mounted into notebooks by default?
- Can a notebook reach the Kubernetes API, other profiles, databases, or cloud endpoints?
The safest answer is not always “deny everything.” Data science workflows need access to data and GPUs. The objective is to make that access explicit, scoped to a namespace, and observable. Use dedicated service accounts, avoid cluster-admin bindings, limit secret mounts, and separate development, evaluation, and production workloads.
Cloud metadata and lateral movement
A compromised notebook should not become a cloud credential broker. Cloud metadata services expose temporary credentials in many environments, and a pod that can reach them may obtain more authority than its application role was meant to have. Whether this is exploitable depends on the cloud, node configuration, network path, and workload identity settings.
Validate the control from inside a representative test notebook using an approved, non-destructive check. Prefer workload identity or short-lived, audience-bound credentials. Add egress rules that block metadata endpoints where the workload does not need them, and configure the cloud provider’s metadata protections. NetworkPolicy alone is not a substitute for correct IAM: a mis-scoped role can still expose sensitive actions through an allowed API path.
Safe assessment methodology
Run the assessment in a staging cluster that mirrors production identity, ingress, and RBAC. Synthetic data is sufficient for most checks.
Phase 1 — Exposure and identity
- Inventory public DNS, load balancers, ingress routes, and component versions.
- Confirm that HTTP, websocket, and callback paths enforce the same identity boundary.
- Test unauthenticated, expired-session, wrong-tenant, and insufficient-role cases.
Phase 2 — Authorization and isolation
- Enumerate resources as viewer, editor, and owner roles.
- Attempt only read-only cross-profile requests with test data.
- Compare Kubernetes audit events with dashboard actions.
- Verify that profile names, notebook names, and model metadata do not disclose secrets.
Phase 3 — Workload containment
- Review pod security context, service account tokens, host mounts, and privileged flags.
- Test egress to cluster, database, and metadata destinations using harmless connectivity checks.
- Confirm that a terminated notebook revokes its credentials and deletes temporary data.
Phase 4 — Detection and recovery
- Alert on new cluster-role bindings, profile ownership changes, unusual notebook creation, and access from new locations.
- Exercise credential revocation and namespace quarantine.
- Restore a test profile from the documented backup path and record recovery time.
Do not use an exploit chain against a shared or production Kubeflow cluster merely to demonstrate impact. A permission diff, audit event, and controlled deny response usually provide better evidence with less operational risk.
Hardening checklist
- Put the Central Dashboard behind OIDC and a restricted ingress.
- Enforce TLS and short-lived sessions; rotate signing keys through the identity provider.
- Disable automatic profile creation unless ownership is reviewed.
- Use profile-scoped RoleBindings and avoid
cluster-adminfor notebook workloads. - Apply namespace, pod-security, and egress policies appropriate to each workload.
- Block cloud metadata access for pods that do not require it; use workload identity where possible.
- Remove unused component links and proxy routes from the dashboard.
- Scan model and notebook artifacts before execution and keep provenance records.
- Stream Kubernetes, Istio, identity, and cloud audit logs to a monitored destination.
- Practice revocation, namespace quarantine, and notebook rebuilds.
Frequently asked questions
Is every exposed Kubeflow dashboard an account-takeover vulnerability?
No. Exposure increases attack surface, but impact depends on authentication, authorization, component versions, and workload permissions. Report the verified boundary that was crossed.
Does OIDC solve Kubeflow security?
No. OIDC proves identity. RBAC, profiles, network isolation, pod security, artifact controls, and cloud IAM still determine what that identity can do.
Should notebooks have access to the Kubernetes API?
Only when a documented workflow requires it. Start with no access, add the smallest namespace-scoped permissions, and monitor changes.
How should a finding be rated?
Rate the reachable asset and action. Reading a synthetic profile record is not equivalent to obtaining a production cloud role or changing a cluster-wide resource. The CVSS value in an advisory is a reference; the deployment-specific impact still needs to be documented.
Related reading
Security Validation
Have you tested this risk in your own system?
Eresus Security delivers real exploit evidence through penetration testing, AI agent security, and red team operations.
Request a pilot testRelated Research
Related Services