CVE-2025-15381
UNKNOWNMLflow: broken access control exposes experiment traces
Any authenticated MLflow user — including accounts explicitly granted NO_PERMISSIONS — can read trace data and inject assessments on experiments they own nothing. If your ML platform runs `mlflow server --app-name=basic-auth`, assume all trace contents (prompts, inputs, outputs, metadata) are readable by every internal user until patched. Update MLflow immediately and audit who has any valid credential on your instance.
Severity & Risk
Recommended Action
- 1. Patch: Update to the fixed MLflow version as soon as available (monitor https://github.com/mlflow/mlflow/releases and the huntr disclosure). 2. Immediate workaround: Place MLflow behind a network perimeter (VPN/firewall) so only authorized users can authenticate at all — reducing the blast radius of the missing endpoint-level authz. 3. Audit access: Review who holds any valid MLflow credential; revoke dormant accounts. 4. Rotate secrets: If trace logs may contain API keys or credentials passed as model inputs, rotate them. 5. Detection: Review MLflow access logs for cross-experiment trace reads by users who own no runs in those experiments. 6. Consider disabling assessments feature if not in active use until patched.
Classification
Compliance Impact
This CVE is relevant to:
Technical Details
NVD Description
In the latest version of mlflow/mlflow, when the `basic-auth` app is enabled, tracing and assessment endpoints are not protected by permission validators. This allows any authenticated user, including those with `NO_PERMISSIONS` on the experiment, to read trace information and create assessments for traces they should not have access to. This vulnerability impacts confidentiality by exposing trace metadata and integrity by allowing unauthorized creation of assessments. Deployments using `mlflow server --app-name=basic-auth` are affected.
Exploitation Scenario
A contractor or low-privilege service account is granted a MLflow credential with NO_PERMISSIONS to run a limited task. Using standard MLflow REST API calls to the unprotected `/api/2.0/mlflow/traces` and assessment endpoints, they enumerate and download traces from all experiments — including the production LLM fine-tuning experiments they were never authorized to see. The traces contain the full prompt templates, system instructions, and labeled training examples your team spent months curating. In parallel, the attacker creates fraudulent assessments marking a backdoored model variant as high-quality, potentially influencing automated model promotion pipelines that trust MLflow evaluation scores.
Weaknesses (CWE)
References
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
- huntr.com/bounties/149fb2f9-ef4b-4136-a25c-20563451904c
AI Threat Alert