← Back to search

CVE-2026-77596

9.6 CRITICALpublic exploit available

Published 2026-11-05 · Updated 2026-11-05

AI risk analysis

Summary
A missing authorization check in Kubeflow Pipelines before 2.18.0 allows low-privilege users to upload or overwrite pipeline versions in shared namespaces when multi-user mode is enabled but namespace enforcement is disabled, enabling pipeline injection and potential execution of malicious code under another tenant's service account.
Exploitability
Exploitation requires either a low-privilege authenticated user in a misconfigured environment (REQUIRE_NAMESPACE_FOR_PIPELINES=false) or direct API server access without an authenticating proxy for unauthenticated exploitation; the exploit is non-trivial due to the need to craft valid pipeline specifications and trigger unpinned recurring runs.
Blast radius
An attacker could inject malicious pipeline code that executes under another tenant's service account in their namespace, potentially accessing sensitive data or resources within that tenant's scope, but only if an unpinned recurring run is configured to follow the latest version.
Detection
Defenders should monitor for unexpected pipeline upload or version creation events in shared namespaces by low-privilege users, especially when REQUIRE_NAMESPACE_FOR_PIPELINES is false; look for API server logs showing POST /apis/v2beta1/pipelines/upload or POST /apis/v2beta1/pipelines/upload_version requests with empty targetNamespace headers from non-admin users.
Prioritized remediation
Upgrade to Kubeflow Pipelines 2.18.0 or later, which fixes the missing SubjectAccessReview check.
auth-bypasspipeline-injectionmulti-tenancykubeflowiam-misconfig

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

Kubeflow Pipelines enables users to build and deploy portable, scalable machine learning workflows. Prior to 2.18.0, the multi-user HTTP endpoints POST /apis/v2beta1/pipelines/upload and POST /apis/v2beta1/pipelines/upload_version call canUploadVersionedPipeline, which returns without SubjectAccessReview when the target namespace is empty while REQUIRE_NAMESPACE_FOR_PIPELINES defaults to false. A low-privilege tenant can create shared pipelines or inject attacker-controlled versions into existing shared pipelines without the required write permission; if the API server is directly reachable without an authenticating proxy, an unauthenticated caller can exploit the same bypass, while deployments protected by such a proxy do not expose anonymous access. An enabled unpinned recurring run that follows the latest version can then execute the injected specification in another tenant's namespace under that workload's service account, while pinned or embedded-specification runs are not automatically substituted. This issue is fixed in version 2.18.0.

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N

Weaknesses

CWE-639, CWE-862

Public exploit & PoC references

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.