Case · DiggingBeagle record

MLflow scorer imports executed Python before a scoring request

MLflow imported a user-controlled Python scorer module from an allowed third-party module prefix before checking the request as a scoring job. The maintainer reproduced a command-execution marker running with the server process authority before an eventual HTTP 500 response.

Scope

The attack presupposes an affected MLflow server with a writable module namespace, including the demonstrated official 3.14.0 Docker image. The proof is a controlled reproduction, not evidence of a breached customer server; CVE-2026-116692 is distinct from MLflow scorer SSRF.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
Remediation
patch available
AI role
AGAINST AI
Basis and provenance

The cited primary technical report or advisory supports the stated mechanism within its reported scope. The assessment does not infer a production breach, a victim count or a comparable impact score from a laboratory result. A maintainer or advisory names a patched release; that does not prove every deployed instance has updated. Boundary: The shell was not required for execution: Python importlib executed a module located under a supposedly allowed package prefix, after the same server had accepted an artifact upload into that namespace.

Assessed Oct 29, 2026 using diggingbeagle.assessment/1.

At a glance

Mechanism and trust boundary

  1. 01

    Step

  2. 02

    Step

  3. 03

    Step

Claims & evidence

CLM-ENRICH-20261029-15The MLflow scorer advisory demonstrates importing a caller-uploaded Python module through the scorer endpoint on a default unauthenticated 3.14.0 Docker server, with a harmless execution marker appearing before the request failed.supported

Basis: reported finding

Link to claim
CLM-CP23-MLFLOW-SCORER-IMPORT-1MLflow imported a user-controlled Python scorer module from an allowed third-party module prefix before checking the request as a scoring job. The attack presupposes an affected MLflow server with a writable module namespace, including the demonstrated official 3.14.0 Docker image. The maintainer reproduced a command-execution marker running with the server process authority before an eventual HTTP 500 response.supported

Basis: reported finding

Link to claim

Implications

The maintainer reproduced a command-execution marker running with the server process authority before an eventual HTTP 500 response.

Controls and mitigations

  • Upgrade to MLflow 3.17.0 and prevent uploaded artifacts from being imported as trusted Python scorers.

Unknowns and contradictions

  • The proof is a controlled reproduction, not evidence of a breached customer server; CVE-2026-116692 is distinct from MLflow scorer SSRF.

Sources and citation

Material revision history

  1. Oct 29, 2026 · Canonical change recorded · new in release · revision 202