CVE-2026-64849 - MLflow: Unauthenticated full-read SSRF in webhook delivery: _validate_webhook_ur

CVE-2026-64849 是 MLflow 3.15.0 之前版本中的严重 SSRF 漏洞,默认配置下攻击者可利用未认证的 Webhook 测试接口和重定向绕过 IP 校验,访问云元数据及内网服务,CVSS 评分 9.3。本文分析漏洞原理、攻击场景及修复措施。

🔥 热门漏洞情报 · GitHub-Advisory · 2026-08-17

CVE-2026-64849 - MLflow: Unauthenticated full-read SSRF in webhook delivery: _validate_webhook_ur

Critical · CVSS 9.3 服务端请求伪造(SSRF)
CVE-2026-64849
📊 跨来源整合CISA-KEVNVD-Latest

📋 漏洞概述

MLflow 默认配置下 Webhook 测试接口存在未授权 SSRF,攻击者可利用重定向绕过 IP 校验访问内网及云元数据服务。

📋 基础信息

受影响版本MLflow < 3.15.0(mlflow server 默认配置,SQLite 后端,未启用认证插件)
漏洞类型服务端请求伪造(SSRF)
CVSS9.3 · Critical
CVECVE-2026-64849

🔬 漏洞根因

MLflow 的 _validate_webhook_url() 仅验证初始 URL 的解析 IP 是否为公网地址,但验证后未将合法 IP 绑定到后续连接;webhook 投递时使用 requests 库默认行为跟随重定向,且重定向目标会重新进行 DNS 解析,未再次执行 SSRF 校验。攻击者只需提供一个通过校验的公网 HTTPS 端点,该端点返回 302 重定向至内网或云元数据地址,MLflow 即会跟随并获取响应。

🎯 攻击场景

1. 前提:目标 MLflow Tracking Server 版本低于 3.15.0,且以默认配置启动(未启用认证插件),Webhook API 匿名可访问。2. 攻击者在公网部署一个 HTTPS 服务,该服务返回 302 Location 指向 http://169.254.169.254/latest/meta-data/ 或 http://127.0.0.1:80/ 等内网地址。3. 攻击者调用 POST /api/2.0/mlflow/webhooks/{id}/test 接口,Webhook ID 可为任意已存在或新建的 webhook(若可创建),或直接利用默认存在的 webhook。4. MLflow 服务器收到请求后,_validate_webhook_url() 对攻击者提供的公网 URL 进行校验,DNS 解析为公网 IP,校验通过;随后投递请求时跟随 302 重定向,重新解析内网域名/地址,向目标发起请求。5. 接口将上游响应状态与响应体返回给攻击者,攻击者成功读取云元数据(如 AWS 临时凭证)或内网服务敏感信息。

💥 漏洞影响

未认证攻击者可读取云元数据服务(如 169.254.169.254)中的临时凭证、IAM 角色信息,或访问内网 HTTP 服务(如管理面板、内部 API),导致敏感信息泄露,进一步可导致云账号接管或内网横向渗透。默认 MLflow 服务器无认证,且该接口存在时风险极高。

🛡️ 修复建议

升级到 MLflow 3.15.0 或更高版本,官方修复了重定向跟随时的 IP 校验。临时缓解措施:1) 启用认证插件,限制 Webhook API 的访问;2) 在网络层用防火墙/安全组限制对 mlflow server 的访问,仅允许可信 IP;3) 禁用或删除 Webhook 测试接口(如通过反向代理屏蔽 /api/2.0/mlflow/webhooks/*/test);4) 出方向网络策略限制访问内网 IP 段和云元数据地址。

📎 参考链接

🚨 威胁评估

📈 EPSS 利用概率暂无数据
🚨 CISA KEV未被已知利用
🔧 公开 PoC暂无公开 PoC

⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-08-20 04:07 | 来源: GitHub-Advisory

🤖 常见问题解答(FAQ)

❓ 如何检测我的 MLflow 服务是否受此 SSRF 漏洞影响?

检查版本是否低于 3.15.0,并确认服务是否启用了默认认证。可向 /api/2.0/mlflow/webhooks/ 非存在 ID 发送 POST 测试,若返回未授权错误则已启用认证;若返回 404/400 则可能未受保护。

❓ 攻击者能否直接获取云服务器 IAM 角色凭证?

能。通过重定向到 169.254.169.254 的元数据 URL,测试接口会返回响应体,包括 AWS IMDSv1 的临时凭证。若使用 IMDSv2 需额外请求头,但仍可能被利用,取决于目标配置。

❓ 修复版本 3.15.0 具体修复了什么?

修复后在 webhook 投递时不再盲目跟随重定向,或对重定向目标重新执行 _validate_webhook_url() 检查,并禁止访问非公网 IP 段,从而阻断 SSRF 链。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)