Kubeflow Pipelines API server skips authorization for shared pipeline uploads
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-639.
Summary
Before 2.18.0, the multi-user pipeline upload endpoints skip authorization when the target namespace is empty, which happens because REQUIRE_NAMESPACE_FOR_PIPELINES defaults to false. A low-privilege tenant can create shared pipelines or add attacker-controlled versions to existing ones without write permission, and unauthenticated callers can do the same when the API server is reachable without an authenticating proxy. An enabled unpinned recurring run that follows the latest version then executes the injected specification in another tenant's namespace under that workload's service account. Pinned and embedded-specification runs are not automatically substituted.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
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.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Upgrade Kubeflow Pipelines to version 2.18.0 or later, which fixes this issue.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA pipelines (kubeflow) Fixed in 2.18.0
Timeline
- 2026-11-05 Threatist record created from CVE-2026-77596
References
More kubeflow vulnerabilities
- TI-2026-39556 Improper access control in kubeflow pipelines CVSS 3.1CRITICAL 10.0
- TI-2024-05160 ReDoS in kubeflow/kubeflow CVSS 3.1HIGH 7.5
- TI-2026-34822 Kubeflow Community Distribution: Overly Permissive Istio Permissions Allows Kubeflow Authorization Token Stealing CVSS 3.1HIGH 8.0
- TI-2026-85696 Server-side request forgery in Kubeflow Pipelines TensorBoard proxy CVSS 3.1MEDIUM 5.8
- TI-2026-73437 Server-side request forgery in Kubeflow Model Registry leaks tokens CVSS 4.0HIGH 7.1
- TI-2026-85698 Server-side request forgery in Kubeflow Pipelines artifact endpoints CVSS 3.1HIGH 8.6
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences