ZeroHour

CVE-2026-54745

large

Unauthenticated SSRF in Kubeflow Pipelines before 2.17.0

CVSS 3.1
10.0 critical
EPSS
<1%p36
Published
()
Modified
AI analysis

Kubeflow Pipelines versions prior to 2.17.0 expose an unauthenticated server-side request forgery (SSRF) in the frontend's /_proxy/ route (frontend/server/proxy-middleware.ts), where the _routePathWithReferer() function accepts an arbitrary attacker-controlled HTTP or HTTPS target and passes it to createProxyMiddleware with no host allowlist and no filtering of loopback, link-local, RFC1918, or cluster-local addresses. An unauthenticated attacker triggers it by sending requests to the proxy endpoints — /apis/v1beta1/_proxy/, /apis/v2beta1/_proxy/, /pipeline/apis/v1beta1/_proxy/, or /pipeline/apis/v2beta1/_proxy/ — including via a crafted Referer header, and can control the forwarded HTTP method, headers (such as Authorization, Cookie, and X-Forwarded-For), and POST body, with the upstream response returned to the attacker. The route sits outside the authorization middleware even when ENABLE_AUTHZ=true, so successful abuse allows unauthorized reads or modifications of cluster-internal Kubernetes or service APIs and disclosure of cloud metadata credentials. Anyone running an affected version of the open-source Kubeflow Pipelines frontend is affected, with the greatest risk where the dashboard is reachable by untrusted users or exposed to the internet. There is currently no known public proof of concept, the flaw is not in the CISA KEV catalog, and EPSS assigns roughly a 0.4% probability of exploitation within 30 days.

What to do: Upgrade Kubeflow Pipelines to 2.17.0 or later. Until then, restrict access to the _proxy routes at the ingress/reverse-proxy layer and apply Kubernetes NetworkPolicies or egress filtering so the frontend cannot reach link-local (169.254.169.254) metadata, loopback, RFC1918, or cluster-internal addresses; note that ENABLE_AUTHZ=true does not cover this route. Review logs for unauthenticated requests to the four _proxy paths and rotate any cloud metadata or service credentials if internal endpoints may have been reached.

Affected
Kubeflow (Kubeflow project, CNA: [email protected]) Kubeflow Pipelines (frontend)all versions prior to 2.17.0 (< 2.17.0); fixed in 2.17.0
Estimated exposure
largetens of thousands of cluster deployments (est.); likely low thousands directly internet-exposed — Kubeflow is one of the most widely deployed open-source Kubernetes ML platforms and ships in distributions from major cloud and platform vendors, implying a self-hosted install base plausibly in the tens of thousands of clusters, though…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Kubeflow Pipelines enables users to build and deploy portable, scalable machine learning workflows. Prior to 2.17.0, the Kubeflow Pipelines frontend exposes an unauthenticated server-side request forgery vulnerability through the /_proxy/ route in frontend/server/proxy-middleware.ts. The _routePathWithReferer() function accepts an arbitrary attacker-controlled HTTP or HTTPS target and passes its origin to createProxyMiddleware without a host allowlist or filtering for loopback, link-local, RFC1918, or cluster-local addresses. The route remains outside the authorization middleware when ENABLE_AUTHZ=true and is reachable through /apis/v1beta1/_proxy/, /apis/v2beta1/_proxy/, /pipeline/apis/v1beta1/_proxy/, and /pipeline/apis/v2beta1/_proxy/, including through a crafted Referer header. Requests can forward attacker-controlled methods, headers such as Authorization, Cookie, and X-Forwarded-For, and POST bodies to reachable internal services, while returning the upstream response to the unauthenticated client. This can expose cloud metadata credentials, Kubernetes or service APIs, and other cluster-internal endpoints to unauthorized read or modification. This issue is fixed in version 2.17.0.

Weakness
CWE-284, CWE-918
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.