CVE-2026-8147: MLflow Trace API Authorization Bypass (CVSS 8.1)
MLflow, a popular machine learning tracking and versioning platform, has a critical authorization bypass vulnerability in its trace API endpoints. When authentication is enabled, authenticated users can access, modify, or delete machine learning experiment traces they shouldn't be able to see—essentially breaking the permission boundaries that organizations set up to isolate experiments. An attacker with any valid login can read sensitive training data, destroy audit records, or tamper with experiment metadata across the entire platform. The flaw stems from missing authorization checks in the trace API handler, allowing requests to skip permission validation entirely.
Source data · NVD / CISA · public domain
- CVSS
- 3.0 · 8.1 HIGH · CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
- Weaknesses (CWE)
- CWE-284
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-07-02 / 2026-07-06
NVD description (verbatim)
In MLflow versions prior to 3.14.0, when running with authentication enabled, the trace API endpoints lack proper authorization validators. This allows any authenticated user to bypass experiment-level authorization controls on all trace operations, including reading, deleting, and modifying traces on experiments they do not have permission to access. The issue arises from the `_before_request` handler, which does not register authorization validators for trace endpoints, resulting in requests proceeding without validation. This vulnerability can expose sensitive data, destroy audit logs, and allow unauthorized modifications.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
MLflow versions before 3.14.0 contain an authorization bypass in the trace API layer. The `_before_request` handler fails to register authorization validators for trace-related endpoints (`/api/2.0/traces/*`). This omission causes HTTP requests to proceed without experiment-level permission checks, even though the authentication framework is active. An authenticated user can exploit this by crafting API calls to read, modify, or delete traces on experiments outside their permission scope. The vulnerability affects all trace operations: GET (read), POST (create), PUT (update), and DELETE. Because the authorization layer is completely absent rather than misconfigured, the bypass applies uniformly across all experiment boundaries.
Business impact
Organizations using MLflow for collaborative machine learning face exposure of proprietary model training data, training parameters, and experiment results. Data scientists or attackers with any valid account can exfiltrate experiments belonging to other teams or projects. Audit logs and trace records—critical for compliance, reproducibility, and forensics—can be deleted, destroying evidence of model decisions or data processing. Unauthorized modifications to trace metadata could corrupt experiment integrity or mislead stakeholders about model performance and lineage. In regulated industries (finance, healthcare, automotive), this creates compliance violations and accountability gaps.
Affected systems
All MLflow deployments running versions 3.13.x and earlier with authentication enabled are vulnerable. The trace API endpoints are core MLflow functionality used by the MLflow SDK and web UI, so any MLflow instance accepting remote connections is at risk. Deployments relying on network isolation or reverse proxy authentication may offer partial mitigation but do not resolve the underlying API-level flaw. MLflow 3.14.0 and later patch the issue by registering proper authorization validators.
Exploitability
Exploitability is moderate to high. An attacker needs a valid account with any permission level (even read-only access to one experiment), but no special privileges or multi-step social engineering. The exploit is a straightforward HTTP API call; no complex interaction patterns, race conditions, or special configurations are required. Tools like curl or Postman can demonstrate the vulnerability in seconds. The barrier to discovery is low—the trace API is documented and discoverable. However, exploitation requires network access to the MLflow instance, and most organizations restrict API access to internal networks or VPNs, which slows opportunistic attacks but does not prevent insider threats.
Remediation
Upgrade MLflow to version 3.14.0 or later immediately. The patch reinstates authorization validators for all trace endpoints, restoring experiment-level permission boundaries. No configuration changes or data migration is needed. If immediate patching is not possible, disable remote API access or restrict trace API endpoints at the reverse proxy layer using URL patterns matching `/api/2.0/traces/*`, though this is a temporary measure and not a substitute for the patch.
Patch guidance
Visit the MLflow releases page and download version 3.14.0 or the latest stable release. For pip-based installations, run `pip install --upgrade mlflow>=3.14.0`. For container deployments, update the MLflow Docker image tag to 3.14.0 or later and redeploy. Test the upgrade in a staging environment first to confirm compatibility with custom authentication plugins or reverse proxy configurations. No database migrations or service restarts beyond standard container/process replacement are required.
Detection guidance
Check your MLflow deployment version in the web UI (Settings → About) or via `mlflow --version` CLI. Query your package manager: `pip show mlflow` (pip) or check your requirements file. Audit MLflow API access logs for unusual trace endpoint requests, particularly GET/DELETE calls to `/api/2.0/traces` from users accessing experiments outside their team scope. Enable verbose logging in MLflow and monitor for trace operations by accounts with limited permissions. Network-level detection: flag any intra-service API calls to trace endpoints that bypass your authentication proxy's expected flow.
Why prioritize this
CVE-2026-8147 scores 8.1 (HIGH) because it combines high-impact consequences (data exfiltration, audit log deletion, experiment tampering) with low attack complexity and low privilege barriers. While it requires authentication, it undermines the core purpose of role-based access control in MLflow. The vulnerability is not yet listed on CISA's KEV, but the broad scope (all trace operations), easy exploitation, and upstream trust in MLflow's authorization model make it a priority for teams using MLflow in multi-user environments. Organizations with shared MLflow instances and sensitive experiment data should patch within days, not weeks.
Risk score, explained
The CVSS 3.0 score of 8.1 reflects: (1) Network attack vector—the API is remote-accessible; (2) Low attack complexity—no special conditions or race conditions; (3) Low privilege requirement—any authenticated user qualifies; (4) No user interaction needed; (5) High confidentiality impact—all traces can be read; (6) High integrity impact—traces can be deleted or modified; (7) No availability impact—the system remains operational. The score does not assume CVSS 3.1 qualifiers, so actual risk may vary based on your attack surface (is MLflow internet-facing? how many user accounts exist?). If MLflow is internal-only and accounts are tightly controlled, practical risk is lower; if it's shared across many teams or externally accessible, risk approaches critical.
Frequently asked questions
Does this vulnerability require the attacker to have admin privileges?
No. Any authenticated user can exploit this vulnerability, regardless of their permission level. Even a user with read-only access to one experiment can escalate to reading, modifying, or deleting traces on any experiment in the MLflow instance.
Will patching MLflow cause downtime or data loss?
No. The patch in version 3.14.0 only adds authorization checks; it does not modify the database schema, delete data, or require schema migrations. MLflow can be upgraded with minimal downtime (typically just a service restart or rolling container update). Existing traces and experiments are unaffected.
If we use MLflow behind a firewall with no external access, is this vulnerability still a risk?
Yes. This vulnerability exploits internal API-level authorization, not network exposure. Any insider—employee, contractor, or lateral movement attacker on your network—can exploit it. Firewall protection reduces the attack surface to insiders only, but does not eliminate the vulnerability. Patching is still required.
Does this affect MLflow's REST API only, or also the Python SDK?
Both. The vulnerability is in the backend trace API endpoints. The MLflow Python SDK, web UI, and any other client that calls trace endpoints (via HTTP under the hood) can trigger the bypass. The flaw is server-side, so all clients are affected equally.
This analysis is based on the CVE description and CVSS vector provided and represents SEC.co's interpretation for context and guidance. Readers should verify patch availability, compatibility, and version applicability against the official MLflow security advisory and release notes. The vulnerability status, patch versions, and timeline may change; always consult MLflow's official channels for authoritative information. This document is for informational purposes and does not constitute professional security advice. Organizations should conduct their own risk assessment based on their deployment architecture, data sensitivity, and threat model. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-3198MEDIUMMLflow 3.9.0 Basic-Auth Authorization Bypass – Gateway API Enumeration
- CVE-2025-22426HIGHAndroid ComputerEngine URI Escalation Privilege Vulnerability
- CVE-2025-45422HIGHProximus b-box v8c.725A Access Control Flaw Allows Unauthorized Port Forwarding Changes
- CVE-2025-46315HIGHmacOS Tahoe Permissions Flaw Enables Unauthorized Data Access
- CVE-2025-63579HIGHKyocera TASKalfa Printer Authentication Bypass & Credential Extraction
- CVE-2025-66391HIGHCitrix Cloud Read-Only Account Privilege Escalation to Account Takeover
- CVE-2025-71380HIGHn8n Execute Command Node Arbitrary Command Execution Vulnerability
- CVE-2026-11179HIGHChrome ORB Site Isolation Bypass (CVSS 8.8)