← Back to search

CVE-2026-116692

9.8 CRITICALpublic exploit available

Published 2026-10-27 · Updated 2026-10-27

AI risk analysis

Summary
MLflow's scorer deserialization logic allows arbitrary code execution by loading unauthorized third-party modules due to overly permissive module resolution in mlflow/genai/scorers/base.py between versions 3.12.0rc0 and 3.17.0, enabling unauthenticated attackers (in auth-disabled deployments) or authenticated attackers with artifact upload permissions to execute arbitrary Python code via crafted scorer classes.
Exploitability
Exploitation requires either an auth-disabled deployment or a principal with experiment/run creation and artifact upload permissions; the server process must have write access to the allowed scorer package directory.
Blast radius
Successful exploitation grants full system compromise (CIA impact: high) including remote code execution, data exfiltration, and potential lateral movement within the ML infrastructure.
Detection
Monitor for artifact upload requests to experiment run directories followed by /ajax-api/3.0/mlflow/scorer/invoke calls referencing non-standard scorer modules under allowed packages; look for Python import attempts of unexpected submodules in server logs or process execution traces.
Prioritized remediation
Upgrade to MLflow version 3.17.0 or later, which fixes the overly permissive module resolution in scorer deserialization.
rcedeserializationmlflowthird-party-scorerauth-bypass

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

MLflow is an open source AI engineering platform for agents, large language models, and machine learning models. From 3.12.0rc0 until 3.17.0, third-party scorer deserialization in mlflow/genai/scorers/base.py accepts request-selected descendants of THIRD_PARTY_SCORER_ALLOWED_MODULES rather than requiring an exact allowed module. A caller can use MLflow artifact endpoints to place a Python module beneath a writable allowed package and submit its module and class through /ajax-api/3.0/mlflow/scorer/invoke. Scorer.model_validate_json() imports the module and constructs the class before trace processing. Authentication-disabled deployments permit this code execution without credentials, while basic-auth deployments require a principal capable of creating an experiment and run and uploading artifacts. In either configuration, the allowed scorer package must be writable by the server process. This issue is fixed in version 3.17.0.

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CWE-94, CWE-470

Public exploit & PoC references

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.