---
id: "CVE-2026-118759"
kind: "vulnerability"
aliases: ["CVE-2026-118759"]
title: "Kubeflow Pipelines: unauthenticated log endpoint leaks other runs' pod logs"
severity: "high"
cvss: 7.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["kubeflow-pipelines", "kubernetes", "machine-learning", "package", "self-hosted"]
not_affected_if: ["api-server-not-reachable", "version-2.18.0-or-later"]
published_at: "2026-10-29T17:18:06+00:00"
first_seen_at: "2026-10-29T17:26:17+00:00"
updated_at: "2026-10-29T17:27:53+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-118759", "first_seen_at": "2026-10-29T17:26:17+00:00"}]
---

# Kubeflow Pipelines: unauthenticated log endpoint leaks other runs' pod logs

The Kubeflow Pipelines API server's run log endpoint did not check whether the caller was allowed to read the selected run, so a caller who reaches the backend and knows a run ID and node ID can read that run's logs, or logs of an unrelated pod, using the API server's permissions. Logs can contain sensitive workload data or credentials.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the Kubeflow Pipelines version deployed, for example with `kubectl get deploy -A` and inspecting the image tag of the `ml-pipeline` API server
- Confirm whether the API server is reachable from outside the cluster or from untrusted networks, and whether an external authentication gate or network policy sits in front of it
- Check whether the API server is deployed from a version before `2.18.0`

## Fix

- Kubeflow Pipelines: upgrade to `2.18.0`

## Timeline

- 2026-10-29T17:26:17+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-118759

## From the sources

Kubeflow Pipelines enables users to build and deploy portable, scalable machine learning workflows. Prior to 2.18.0, the API server's GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log handler retrieved logs without authorizing the caller against the selected run. A caller who can reach the backend and knows a victim run ID and suitable pod or node identifier can read live or archived logs with the API server's permissions. For live logs, the caller-controlled node ID was also accepted as a pod name without verifying that the pod belonged to the requested run, allowing a known run ID to select the namespace of an unrelated pod and read its main container logs. The handler does not authenticate requests itself, although an external authentication gate or network policy can limit reachability. Exposed logs can contain sensitive workload data or credentials. This issue is fixed in version 2.18.0.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
