Skip to main content

Kubeflow Pipelines CVE-2026-118759

| EUVDEUVD-2026-113216 HIGH
Information Exposure (CWE-200)
2026-10-29 GitHub_M GHSA-wg5q-x4j9-qm54
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach backend log endpoint lacking auth gate
  2. Exploit
    Obtain victim run ID and pod/node identifier
  3. Execution
    Call /runs/{run_id}/nodes/{node_id}/log unauthorized
  4. Impact
    Read main-container logs leaking credentials or workload data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires network reachability to the Kubeflow Pipelines API server backend AND knowledge of a valid victim run ID plus a usable pod or node identifier; the vulnerable GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log handler then returns logs without authorizing the caller against that run. For live logs, the caller-controlled node ID is accepted as a pod name in the run's namespace with no check that the pod's pipeline/runid label matches, so a known run ID lets an attacker read the main container logs of unrelated pods in that namespace, bounded by the API server's own pod-log RBAC. Limiting factors explicitly stated by the vendor: the handler performs no authentication itself, so an external authentication gate or network policy can restrict reachability; public ingress exposure and unauthenticated run-ID enumeration are not assumed. Deployments that independently enforce authentication have materially more restricted exposure.

Impact

This is a genuine, actionable information-disclosure flaw rather than a CVSS-inflated non-issue, but its real-world severity is strongly deployment-dependent. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N = 7.5) reflects network-reachable access to the API server with no application-layer authentication: the GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log handler never authorized the caller against the run (CWE-862 per the GHSA advisory, recorded as CWE-200 in the CVE). The vuln.today decision label is 'this_week', indicating prompt but not emergency remediation. No EPSS score and no CISA KEV status were provided in the input, and there is no public exploit identified at time of analysis - only fix artifacts (advisory, PR #13684, commit, release) are referenced, not weaponized exploit code; the advisory mentions a privately reported synthetic two-tenant reproduction, not a published PoC. The key tension is that the raw PR:N score assumes no independent authentication gate: the advisory explicitly states that the handler does not authenticate requests itself and that an external authentication gate or network policy can restrict reachability, and that public ingress exposure and unauthenticated run-ID enumeration are NOT assumed. Therefore clusters that front the API server with authn (e.g. via Istio/oauth2-proxy) or network policy face materially lower real exposure than the headline 7.5 suggests, while flat-network or weakly-gated deployments are fully exposed. Treat as a prioritized patch for ML platform operators, weighted by whether the backend is independently gated.

Exploit ScenarioDerived

An attacker who can reach the Kubeflow Pipelines backend (e.g. a low-privilege tenant on the cluster network or anyone past a missing auth gate) learns a victim's run ID and a pod or node identifier, then calls GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log. Because the handler never checks that the caller owns the run - and, for live logs, never verifies the pod actually belongs to that run - the attacker reads the main container logs with the API server's own permissions, harvesting workload data or credentials. No public exploit code is identified at time of analysis; exploitation requires only standard HTTP requests with the right identifiers.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 29, 2026

Unauthorized log disclosure in the Kubeflow Pipelines API server allows a caller who can reach the backend and supply a valid run ID plus a pod or node identifier to read live or archived run logs using the API server's own Kubernetes permissions. Because the GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log handler does not authorize the caller against the selected run, and for live logs treats the caller-supplied node ID as a pod name without checking the pipeline/runid label, a known run ID can also be used to pull the main container logs of unrelated pods in that namespace, potentially exposing workload data or credentials; the CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N with high confidentiality impact, and the handler performs no authentication itself, so deployments behind an external authentication gate or network policy have materially reduced exposure. No public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor prioritizes the fix for this week's patch cycle. Affected deployments are those running the kfp-api-server image through version 2.17.3; version 2.18.0 contains the fix.

RemediationAI

Upgrade the Kubeflow Pipelines API server to 2.18.0 (vendor-released patch; release at https://github.com/kubeflow/pipelines/releases/tag/2.18.0, advisory GHSA-wg5q-x4j9-qm54). The fix is carried by PR #13684 (https://github.com/kubeflow/pipelines/pull/13684, commit be4723e33727c6dad71a95cba61e8f61562ab20f), which authorizes callers with the readLog verb before retrieving live or archived logs and verifies that the pod's pipeline/runid label matches the requested run; after upgrading, audit custom Kubernetes roles because they must grant readLog on runs in the pipelines.kubeflow.org API group, while the bundled viewer and editor roles already include it and ordinary shared read access no longer grants log access. Until the upgrade is applied, the vendor's stated mitigation is to restrict access to the backend log endpoint, for example by keeping an external authentication gate in front of the API server or applying network policies that limit who can reach GET /apis/v1alpha1/runs/{run_id}/nodes/{node_id}/log - accepting that this reduces legitimate UI and SDK log access for users outside the permitted network - and by reducing the API server's pod-log RBAC to the minimum namespaces it truly needs, which narrows the unrelated-pod read path at the cost of losing logs from workloads outside those namespaces. No vendor-released patch exists for 2.17.3 and earlier; 2.18.0 is the fixed version.

Affected VersionsENISA

Pipelines < 2.18.0

Affected Packages

go github.com/kubeflow/pipelines fix: 0.0.0-20260904182349-be4723e33727
euvd pipelines fix: 2.18.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The Kubeflow Pipelines backend is a Go API server (shipped as ghcr.io/kubeflow/kfp-api-server) that proxies Kubernetes operations, including streaming pod logs for pipeline runs through a ResourceManager.ReadLog path and a readRunLogFromPod helper. The flaw is a missing-authorization / information-exposure class issue (CWE-200, with the advisory also tagging CWE-862): the log endpoint trusted the run ID purely as a namespace selector and never verified that the requesting identity held permission over that run, nor that the requested pod was created by it. The upstream patch (PR #13684) introduces a readLog RBAC verb in the pipelines.kubeflow.org API group, checks it before serving live or archived logs, and additionally fetches the pod and rejects the request when its pipeline/runid label does not match the requested run, closing the unrelated-pod path. Custom Kubernetes roles must grant readLog on runs for log access to continue after upgrading; the bundled viewer and editor roles already include it, and ordinary shared read access on runs is not sufficient. The underlying exposure is bounded by the API server service account's own pod-log RBAC: it can read whatever its cluster role permits, which in typical installations spans run namespaces. The CPE cpe:2.3:a:kubeflow:pipelines identifies the affected package; the trigger for archived-log versus live-log paths differs in that only the live-log branch takes the caller-controlled node ID as a pod name, and the precise earliest affected release has not been established by the vendor.

Know when Kubeflow gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 7.5 HIGH

PR:N because the handler performs no authentication itself; AV:N/AC:L for a straightforward HTTP request; C:H for log/credential disclosure with no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Oct 29, 2026 - 17:18 EUVD
CVE Published
Oct 29, 2026 - 16:30 cve.org
HIGH 7.5

DescriptionCVE.org

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.

Technical POC Analysis

The flaw is a missing authorization check on a log-retrieval endpoint in the Kubeflow Pipelines API server (image ghcr.io/kubeflow/kfp-api-server).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 PoC candidate from github (unverified)

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

CVE-2026-118759 is a high-severity unauthorized log disclosure in the Kubeflow Pipelines API server that enables an unauthenticated network caller to read logs from any pipeline run and potentially from unrelated pods, risking exposure of sensitive workload data and credentials. Leadership should care because this flaw can lead to data breaches and credential leakage, undermining trust in the ML platform and potentially violating compliance requirements.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
widely used ML pipeline platform, but confined to Kubernetes MLOps deployments
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

58
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2024-5552 HIGH POC
7.5 Jun 06

kubeflow/kubeflow is vulnerable to a Regular Expression Denial of Service (ReDoS) attack due to inefficient regular expr

CVE-2023-6570 MEDIUM POC
6.5 Dec 14

Server-Side Request Forgery (SSRF) in kubeflow/kubeflow. Rated medium severity (CVSS 6.5), this vulnerability is remotel

CVE-2023-6571 MEDIUM POC
6.1 Dec 14

Cross-site Scripting (XSS) - Reflected in kubeflow/kubeflow. Rated medium severity (CVSS 6.1), this vulnerability is rem

CVE-2026-54745 CRITICAL
10.0 Aug 28

Server-side request forgery in the Kubeflow Pipelines frontend server (prior to 2.17.0) lets any unauthenticated network

CVE-2026-47237 HIGH
8.0 Jul 21

Authorization token theft in Kubeflow Community Distribution before 26.03-rc.1 lets a low-privileged tenant hijack other

CVE-2026-118758 HIGH
7.5 Oct 29

Path traversal in the Kubeflow Pipelines volume artifact handler (versions through 2.17.3, fixed in 2.18.0) lets a remot

CVE-2026-118761 HIGH POC
7.5 Oct 29

Memory exhaustion in the Kubeflow Pipelines API server (versions through 2.17.3) lets a network-reachable, unauthenticat

CVE-2026-110220 HIGH
7.1 Oct 13

Kubeflow Model Registry through 0.3.17 allows an authenticated namespace user with permission to create InferenceService

CVE-2024-9526 HIGH
7.1 Nov 18

There exists a stored XSS Vulnerability in Kubeflow Pipeline View web UI. Rated high severity (CVSS 7.1), this vulnerabi

CVE-2026-118760 MEDIUM
6.5 Oct 29

Cross-tenant artifact disclosure in the Kubeflow Pipelines frontend (kfp-frontend) lets an authenticated user who can re

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy