漏洞概述 漏洞名称: Missing Authorization in get_deployed_stack Endpoint Allows Cross-Tenant Stack Enumeration via Server-Side Client Bypass in zenml-io/zenml CVE编号: CVE-2026-11976 漏洞类型: CWE-862: Missing Authorization 严重程度: Medium (5) 受影响版本: 0.94.2 修复状态: Fixed 发现者: dukesp69 修复者: Stefan Nica 描述: 该漏洞存在于ZenML的 端点中,缺少RBAC(基于角色的访问控制)授权检查。攻击者可以利用此漏洞枚举所有部署的堆栈,包括其他用户和租户的堆栈,从而获取堆栈组件详细信息和服务连接器信息。 影响范围 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 POC代码 参考链接 CWE-862: Missing Authorization OWASP Broken Access Control 发生位置 影响 此漏洞允许任何经过身份验证的用户(即使是非管理员)枚举所有部署的云堆栈,包括其他用户和租户的堆栈,从而暴露以下信息: 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 参考链接 CWE-862: Missing Authorization OWASP Broken Access Control 发生位置 影响 此漏洞允许任何经过身份验证的用户(即使是非管理员)枚举所有部署的云堆栈,包括其他用户和租户的堆栈,从而暴露以下信息: 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 参考链接 CWE-862: Missing Authorization OWASP Broken Access Control 发生位置 影响 此漏洞允许任何经过身份验证的用户(即使是非管理员)枚举所有部署的云堆栈,包括其他用户和租户的堆栈,从而暴露以下信息: 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 参考链接 CWE-862: Missing Authorization OWASP Broken Access Control 发生位置 影响 此漏洞允许任何经过身份验证的用户(即使是非管理员)枚举所有部署的云堆栈,包括其他用户和租户的堆栈,从而暴露以下信息: 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 参考链接 CWE-862: Missing Authorization OWASP Broken Access Control 发生位置 影响 此漏洞允许任何经过身份验证的用户(即使是非管理员)枚举所有部署的云堆栈,包括其他用户和租户的堆栈,从而暴露以下信息: 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 参考链接 CWE-862: Missing Authorization OWASP Broken Access Control 发生位置 影响 此漏洞允许任何经过身份验证的用户(即使是非管理员)枚举所有部署的云堆栈,包括其他用户和租户的堆栈,从而暴露以下信息: 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 参考链接 CWE-862: Missing Authorization OWASP Broken Access Control 发生位置 影响 此漏洞允许任何经过身份验证的用户(即使是非管理员)枚举所有部署的云堆栈,包括其他用户和租户的堆栈,从而暴露以下信息: 基础设施拓扑: 云提供商、区域、堆栈组件类型 服务连接器详情: 连接器类型、认证方法、资源类型 堆栈所有权: 其他租户中堆栈所有者的用户ID 部署元数据: 标签、创建日期、部署提供商 在多租户ZenML Pro/Cloud部署中,此漏洞可能导致跨租户侦察,进而促进进一步攻击(例如,通过服务连接器验证端点识别高价值目标)。 修复方案 1. Layer 1 — Missing endpoint-level RBAC (N-1 of N pattern): - 在 文件中, 端点缺少 调用。 - 修复方法:在 端点中添加 调用。 2. Layer 2 — Server-side Client() bypasses RBAC entirely: - 方法在 中使用 在服务器端解析到 ,绕过了RBAC执行层。 - 修复方法:在 方法中添加RBAC过滤。 参考链接 **