事件经过
_create_model_version()的提示分支接受无scheme的相对源,因为路径验证仅在源带有URL scheme时执行,并且mlflow.prompt.is_prompt根据标签存在性而非真实值推断。这允许远程调用者将任意服务器本地路径注册为模型工件位置并读回。CISA SSVC将其分类为可自动化且具有部分技术影响。
影响分析
未认证攻击者可以读取MLflow服务器进程可读的任意文件(令牌、.env、模型工件、其他租户的数据),在默认部署中,为凭证窃取和ML平台内的进一步横向移动提供支持。
攻击途径
远程调用者将服务器本地路径存储为模型版本工件位置(路径验证仅在源具有URL scheme时执行),并通过/api/2.0/mlflow/model-versions/get-artifact读回,暴露MLflow服务器进程可访问的文件。
受影响系统
MLflow >= 3.10.0,< 3.17.0
缓解措施
升级到MLflow 3.17.0(GHSA-m65p-9j7q-6w33)。限制未认证的模型注册表访问。