MLflow 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…
Inspect the ClaimsCase · 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.
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.
Evidence basis: CLM-CP23-MLFLOW-SCORER-IMPORT-1 · CLM-ENRICH-20261029-15 · MLflow scorer module import before scoring, GHSA-26p8-2jq9-3vq9
At a glance
The maintainer reproduced a command-execution marker running with the server process authority before an eventual HTTP 500 response.
Read the implicationsThe proof is a controlled reproduction, not evidence of a breached customer server; CVE-2026-116692 is distinct from MLflow scorer SSRF.
Limits and uncertaintyFull account
MLflow 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.
The proof is a controlled reproduction, not evidence of a breached customer server; CVE-2026-116692 is distinct from MLflow scorer SSRF. Upgrade to MLflow 3.17.0 and prevent uploaded artifacts from being imported as trusted Python scorers.
Evidence interpretation and control 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. The reproduced default Docker container used an unauthenticated server process with elevated container privileges, but those conditions are not universal to secured MLflow deployments. An eventual HTTP error did not roll back the import-time effect.
Mechanism and trust boundary
- 01
Step
- 02
Step
- 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
- supportsMLflow scorer module import before scoring, GHSA-26p8-2jq9-3vq9primary disclosure
GHSA-26p8-2jq9-3vq9: Impact, attack prerequisites, Docker reproduction and fixed release
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
- supportsMLflow scorer module import before scoring, GHSA-26p8-2jq9-3vq9primary disclosure
GHSA-26p8-2jq9-3vq9: Impact, attack prerequisites, Docker reproduction and fixed release
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
- Oct 29, 2026 · Canonical change recorded · new in release · revision 202