GHSA-2xwh-426q-42c5: Kubeflow Pipelines: Cross-tenant execution-cache poisoning / output substitution via a namespace-blind cache key in the cache webhook (multi-user)

  • Severity: MEDIUM
  • CVE: CVE-2026-88982
  • Ecosystems: go
  • Packages: github.com/kubeflow/pipelines

## Summary

The legacy Kubeflow Pipelines V1/raw-Argo execution cache does not separate cached results by Kubernetes namespace. In multi-user deployments where tenants share the cache service, a tenant can receive another tenant’s cached outputs or seed outputs that are subsequently substituted into another tenant’s step.

This affects the Argo-template cache mutating webhook and its cache-server storage path. Standard KFP V2 component pods bypass this webhook cache; the separate V2 cache implementation is outside this advisory’s scope.

## Affected deployments and impact

The issue requires multiple tenant namespaces sharing the legacy cache service, cache-enabled V1/raw-Argo steps, and cache entries that satisfy the configured staleness policy. The standard multi-user configuration watches pods across namespaces.

A tenant able to submit a step with the same cache-relevant template fields as another tenant’s step can:

– Read cached step outputs originally produced in another namespace.
– Populate the shared cache before another tenant’s matching step runs, causing that step to report the cached outputs instead of executing its intended containers.

Matching refers to the selected template fields used by the cache key, not merely an identical container image. This is an application-level cache-key collision caused by missing tenant scope, not a cryptographic SHA-256 collision. The finding establishes cross-namespace confidentiality and integrity impact; it does not establis…

Source: GitHub Security Advisories · 2026-11-09