REDHAT-BUG-2510320: Medium severity Kubernetes API server vulnerability

Published Aug 3, 2026
·
Updated

Finding setDefaultServiceAccount honours, in priority order: (1) modelRun.ServiceAccount from the API request body, (2) the serviceAccountName already embedded in the uploaded Workflow, (3) the configured default. There is no SubjectAccessReview verifying the caller can use serviceaccounts/<name> or impersonate it.

A tenant can set serviceaccount in their CreateRun request to any SA in the namespace – including ds-pipeline-<dspa> (the API server's own SA, which can create workflows and delete pods) or pipeline-runner (which has secrets:get, pods/exec:).

This affects both V1 and V2 paths.

Files:

backend/src/apiserver/template/template.go:309-319 — setDefaultServiceAccount

backend/src/apiserver/template/argotemplate.go:60

backend/src/v2/template/v2template.go:152-153,393

backend/src/common/util/workflow.go:163-165

Framework: OWASP K8s K02; ASVS V4.1.3 CWE: CWE-269 (Improper Privilege Management) / CWE-441 (Confused Deputy) CVSS v3.1: 7.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N) – High

Exploitation POST /apis/v2beta1/runs with body {"experimentid":"...","pipelineversionreference":{...},"serviceaccount":"ds-pipeline-<dspa>"} (the API server's own SA). The user container then has that token mounted.

Impact A restricted tenant can run their container under a more-privileged SA simply by setting one field in the API call. Combined with the overprivileged pipeline-runner Role (secrets:get, pods/exec:, kubeflow.org /), a tenant can read every Secret in the namespace and exec into co-tenant pods. The DSP namespace also contains the ml-pipeline (apiserver), mariadb/minio, and operator-managed SAs.

Remediation Before setting serviceAccount, perform SAR {verb: "use", resource: "serviceaccounts", name: serviceAccount, namespace: ns} against the calling user. Or restrict to an allow-list configured by the operator (default pipeline-runner only).

Affected Software

2 affected components
Kubernetes API server
Kubeflow Pipelines (runs/experiments service)=V1 and V2 paths

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Before using the tenant-provided service_account in CreateRun, perform a SubjectAccessReview against the calling user for {verb:"use", resource:"serviceaccounts", name: serviceAccount, namespace: ns}, and reject the request if SAR fails. This addresses missing SAR verification noted as affecting both V1 and V2 paths.

    Kubernetes API server (DSP/Argo backend template logic) SubjectAccessReview (SAR) for serviceaccounts use/impersonation = enforce SAR before accepting service_account from CreateRun request
  2. Configuration

    Restrict the service_account value accepted in POST /apis/v2beta1/runs (and analogous V1 path) to an operator-configured allow-list; default to allowing only the pipeline-runner service account. This prevents tenants from selecting ds-pipeline-<dspa> or other overprivileged SAs.

    Kubernetes Argo/DSP pipeline run service account selection (setDefaultServiceAccount) service_account allow-list/deny-by-default behavior = restrict to an operator-configured allow-list (default pipeline-runner only)
  3. Configuration

    Ensure setDefaultServiceAccount cannot select an overprivileged SA based on priority inputs. In particular, when service_account is present in the API request body (priority #1), require the SAR/allow-list check before honoring it; otherwise fall back to embedded Workflow serviceAccountName (priority #2) or configured default (priority #3).

    DSP/Argo workflow template defaulting (setDefaultServiceAccount) service_account precedence = honor only the approved/allowed serviceAccount sources

Event History

Aug 3, 2026
Data Sourced
via Red Hat·07:55 AM
DescriptionSeverityAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of REDHAT-BUG-2510320?

The severity of REDHAT-BUG-2510320 is medium with a risk rating of 4.

2

How do I fix REDHAT-BUG-2510320?

To address REDHAT-BUG-2510320, implement proper SubjectAccessReview checks for users attempting to use specific service accounts.

3

What software is affected by REDHAT-BUG-2510320?

REDHAT-BUG-2510320 affects the Kubernetes API server and Kubeflow Pipelines.

4

What is the main issue described in REDHAT-BUG-2510320?

The main issue in REDHAT-BUG-2510320 is the lack of a SubjectAccessReview that verifies the caller's ability to use specified service accounts.

5

When was REDHAT-BUG-2510320 published?

REDHAT-BUG-2510320 was published on August 3, 2026.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203