---
id: CVE-2026-88982
title: >-
  Kubeflow Pipelines: Cross-tenant execution-cache poisoning / output
  substitution via a namespace-blind cache key in the cache webhook (multi-user)
summary: >-
  Kubeflow Pipelines enables users to build and deploy portable, scalable
  machine learning workflows. Prior to 2.18.0, the legacy V1/raw-Argo execution
  cache mutating webhook and cache-server storage path hash selected template
  fields with…
severity: medium
cvss: 5.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'
cvssSource: cna
cwe:
  - CWE-345
  - CWE-639
vendor: kubeflow
product: pipelines
affected:
  - pipelines < 2.18.0
published: '2026-11-05'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T22:25:58.995Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-88982'
references:
  - url: >-
      https://github.com/kubeflow/pipelines/security/advisories/GHSA-2xwh-426q-42c5
    label: >-
      https://github.com/kubeflow/pipelines/security/advisories/GHSA-2xwh-426q-42c5
  - url: 'https://github.com/kubeflow/pipelines/pull/14359'
    label: 'https://github.com/kubeflow/pipelines/pull/14359'
  - url: >-
      https://github.com/kubeflow/pipelines/commit/620d0cc89ae0d042a484a003f8ffe6e9a55d347e
    label: >-
      https://github.com/kubeflow/pipelines/commit/620d0cc89ae0d042a484a003f8ffe6e9a55d347e
  - url: 'https://github.com/kubeflow/pipelines/releases/tag/2.18.0'
    label: 'https://github.com/kubeflow/pipelines/releases/tag/2.18.0'
tags:
  - cve.org
ingestedAt: '2026-11-05T23:41:31.946Z'
---

## Overview

Kubeflow Pipelines enables users to build and deploy portable, scalable machine learning workflows. Prior to 2.18.0, the legacy V1/raw-Argo execution cache mutating webhook and cache-server storage path hash selected template fields without the Kubernetes namespace, use the key alone for lookups and duplicate checks, and trust the mutable pipelines.kubeflow.org/execution_cache_key annotation when publishing outputs. In multi-user deployments where tenant namespaces share the cache service, a tenant with workload-submission privileges can read another namespace's cached outputs or seed matching outputs that are substituted into a later step. Standard KFP V2 component pods bypass this cache, matching requires the selected template fields and staleness policy, and arbitrary code execution or service availability impact is not established. This issue is fixed in version 2.18.0.

## Affected

- `pipelines < 2.18.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
