MLflow 在 mlflow/sagemaker/__init__.py 中存在命令注入漏洞
平台
python
组件
mlflow
修复版本
3.8.0rc0
CVE-2025-14287 描述了 MLflow 中存在的命令注入漏洞。该漏洞源于在 mlflow/sagemaker/init.py 文件中直接将用户提供的容器镜像名称插入到 shell 命令中,而未进行适当的清理,随后使用 os.system() 执行这些命令。攻击者可以通过 --container 参数提供恶意输入,从而执行任意命令,对 MLflow 环境构成威胁。受影响的版本包括 MLflow v3.7.0 之前的版本,建议升级至 v3.8.0rc0 以解决此问题。
检测此 CVE 是否影响你的项目
上传你的 requirements.txt 文件,立即知道是否受影响。
影响与攻击场景
该命令注入漏洞允许攻击者在 MLflow 环境中执行任意代码。攻击者可以通过 --container 参数提供包含恶意命令的容器镜像名称,这些命令将在 MLflow 执行过程中被执行。这可能导致攻击者完全控制受影响的系统,窃取敏感数据,安装恶意软件,或进行横向移动攻击。例如,攻击者可以利用此漏洞读取系统文件、修改配置,甚至在受影响的服务器上建立持久性后门。由于 MLflow 经常用于机器学习模型的部署和管理,因此该漏洞可能对整个机器学习流程造成严重影响,并可能导致数据泄露和业务中断。
利用背景
目前尚未公开发现针对 CVE-2025-14287 的大规模利用案例。该漏洞已添加到 CISA KEV 目录,表明其具有中等概率被利用。公开的 PoC 尚未出现,但由于漏洞的严重性和易于利用,预计未来可能会出现。建议密切关注安全社区的动态,并及时采取缓解措施。
哪些人处于风险中翻译中…
Organizations heavily reliant on MLflow for machine learning model management, particularly those using it in CI/CD pipelines or cloud deployments, are at significant risk. Shared hosting environments where multiple users have access to the MLflow CLI are also vulnerable, as an attacker could potentially exploit the vulnerability on behalf of another user.
检测步骤翻译中…
• python / mlflow:
import subprocess
import os
def check_mlflow_version():
try:
result = subprocess.check_output(['mlflow', '--version'], stderr=subprocess.STDOUT)
version = result.decode('utf-8').strip()
if version <= '3.7.0rc0':
print(f"MLflow version is vulnerable: {version}")
else:
print(f"MLflow version is not vulnerable: {version}")
except FileNotFoundError:
print("MLflow is not installed.")
check_mlflow_version()• generic web: Check for suspicious container image names being passed to MLflow CLI via command-line arguments or environment variables. Monitor access logs for unusual activity related to MLflow.
攻击时间线
- Disclosure
disclosure
威胁情报
漏洞利用状态
EPSS
0.08% (24% 百分位)
CISA SSVC
CVSS 向量
这些指标意味着什么?
- Attack Vector
- 网络 — 可通过互联网远程利用,无需物理或本地访问。攻击面最大。
- Attack Complexity
- 高 — 需要竞态条件、非默认配置或特定情况。难以可靠利用。
- Privileges Required
- 无 — 无需认证,无需凭证即可利用。
- User Interaction
- 需要 — 受害者必须打开文件、点击链接或访问特制页面。
- Scope
- 未改变 — 影响仅限于脆弱组件本身。
- Confidentiality
- 高 — 完全丧失机密性,攻击者可读取所有数据。
- Integrity
- 高 — 攻击者可写入、修改或删除任何数据。
- Availability
- 高 — 完全崩溃或资源耗尽,完全拒绝服务。
受影响的软件
弱点分类 (CWE)
时间线
- 已保留
- 发布日期
- 修改日期
- EPSS 更新日期
缓解措施和替代方案
为了缓解 CVE-2025-14287 的影响,首要措施是立即升级到 MLflow v3.8.0rc0 或更高版本。如果无法立即升级,可以考虑以下临时缓解措施:严格控制 --container 参数的输入,只允许来自可信来源的容器镜像名称。实施输入验证和清理机制,以防止恶意命令注入。在 MLflow 运行环境中启用安全审计日志记录,以便检测和响应潜在的攻击活动。此外,可以考虑使用 Web 应用防火墙 (WAF) 或代理服务器来过滤恶意请求,并限制对 MLflow API 的访问。升级后,请验证 MLflow 版本是否已成功更新,并检查系统日志中是否存在异常活动。
修复方法
升级 MLflow 到 3.7.0 或更高版本。这通过正确 sanitization 用户输入来修复命令注入漏洞。可以使用 `pip install mlflow --upgrade` 进行升级。
CVE 安全通讯
漏洞分析和关键警报直接发送到您的邮箱。
常见问题
什么是 CVE-2025-14287 — 命令注入漏洞在 MLflow 中?
CVE-2025-14287 是 MLflow 版本小于或等于 3.7.0rc0 中发现的命令注入漏洞,攻击者可以通过 --container 参数执行任意命令。
我是否受到 CVE-2025-14287 在 MLflow 中的影响?
如果您的 MLflow 版本小于 3.7.0rc0,则您可能受到影响。请立即检查您的 MLflow 版本。
我如何修复 CVE-2025-14287 在 MLflow 中?
升级到 MLflow v3.8.0rc0 或更高版本以修复此漏洞。
CVE-2025-14287 是否正在被积极利用?
目前尚未公开发现大规模利用案例,但由于漏洞的严重性,预计未来可能会出现。
在哪里可以找到 MLflow 官方关于 CVE-2025-14287 的公告?
请访问 MLflow 官方安全公告页面以获取更多信息。