事件经过
mlflow/genai/scorers/base.py中的第三方评分器反序列化接受请求选择的THIRD_PARTY_SCORER_ALLOWED_MODULES后代,而非要求精确的允许模块,因此调用者可以将恶意模块放入可写的允许包中,并通过scorer/invoke端点将其导入并实例化。这是对早期MLflow评分器SSRF(CVE-2026-115886)的一个独立且更严重的后续CVE,将SSRF升级为完整代码执行(CVSS 9.8,CWE-94/CWE-470)。
影响分析
对于AI部署,在默认配置中,这会将MLflow模型注册表/GenAI评估端点转变为未认证的RCE控制台:攻击者可以在承载模型、评估和追踪的服务器进程中执行代码,并横向移动到周围的ML平台、数据存储以及进程持有的任何云凭证。
攻击途径
调用者使用MLflow工件端点将Python模块放入可写的允许包下,并通过/ajax-api/3.0/mlflow/scorer/invoke提交该模块/类;scorer model_validate_json在追踪处理前导入模块并构造类,以服务器权限实现代码执行。
受影响系统
MLflow >= 3.12.0rc0,< 3.17.0
缓解措施
升级到MLflow 3.17.0(GHSA-26p8-2jq9-3vq9)。将允许的评分器包限制为不可写位置,并在MLflow服务器上启用认证。