SOC status:Duty analyst on shift

UK Cyber Defence
VulnerabilityAnalyzed

CVE-2026-2652

A vulnerability in mlflow/mlflow versions 3.9.0 and earlier allows unauthenticated access to certain FastAPI routes when the server is started with authentication enabled (`--app-name basic-auth`) and served via uvicorn (ASGI).

HIGH 8.6EPSS 20.8%

Does this matter?

EPSS puts the probability of exploitation in the next 30 days at 20.8%, higher than 98% of all known CVEs. Patch or mitigate before the next change window.

Description

A vulnerability in mlflow/mlflow versions 3.9.0 and earlier allows unauthenticated access to certain FastAPI routes when the server is started with authentication enabled (`--app-name basic-auth`) and served via uvicorn (ASGI). The FastAPI permission middleware only enforces authentication on `/gateway/` routes, leaving other routes such as the Job API (`/ajax-api/3.0/jobs/*`) and the OpenTelemetry trace ingestion API (`/v1/traces`) unprotected. This allows unauthenticated remote attackers to submit jobs, read job results, cancel running jobs, and inject arbitrary trace data into experiments. The issue arises from an architectural mismatch between Flask and FastAPI authentication mechanisms, where the `_find_fastapi_validator()` function fails to handle non-`/gateway/` paths, resulting in a complete authentication bypass. This vulnerability is fixed in version 3.10.0.

CVSS 3.0
8.6 HIGHCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
EPSS
20.78% probability · 98th percentile
Public exploits
None in Exploit-DB
CISA KEV
Not listed
Weakness
CWE-305
Affected
lfprojects/mlflow
Source
security@huntr.dev
EPSS trend
0%13%25%24 September 2026: 1.41%25 October 2026: 20.78%27 October 2026: 20.78%24 September 202627 October 2026

EPSS moved from 1.4% on 24 September 2026 to 20.8% on 27 October 2026. The dashed line is the ten per cent mark our analysts treat as “patch before the next change window”.

Source: NVD record, EPSS from FIRST.org, KEV from CISA, exploits from Exploit-DB. Refreshed daily. Download this record as JSON.