🔴 严重 | CVE-2026-34037 — Coolify is an open-source and self-hostable tool f...
🔴 【深度分析】严重安全漏洞:CVE-2026-34037
CVSS 评分: 严重(9.9)🔴 状态: Received 发布时间: 2026-07-07
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-34037 |
| CVSS 评分 | 9.9 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L |
| CWE 分类 | CWE-639 |
| 发布时间 | 2026-07-07 |
| 最后更新 | 2026-07-07 |
| 状态 | Received |
| 数据来源 | security-advisories@github.com |
好的,作为一名资深网络安全分析师,我将基于您提供的 NVD 数据,为您生成一篇专业的漏洞深度分析文章。
深度安全分析:CVE-2026-34037 - Coolify 跨租户资源克隆漏洞
漏洞概述
CVE-2026-34037 是一个影响 Coolify 开源自助托管平台的 严重 级漏洞。该漏洞存在于平台的资源克隆功能中,由于对目标资源(destination)的权限校验存在缺陷,允许一个已认证的低权限用户将资源(如应用、数据库、服务器等)克隆到其他团队(租户)拥有的目标资源中,实现跨租户资源访问。
- CVSS 评分: 9.9(严重)
- 危害等级: 严重
- 影响范围: Coolify 版本 < 4.0.0-beta.464
此漏洞的核心是 授权机制失效,攻击者能够突破租户隔离(Tenant Isolation)的安全边界,是典型的企业级多租户应用中的高危风险点。
受影响组件与版本
- 软件: Coolify (开源、自托管的服务器/应用/数据库管理平台)
- 受影响版本: 4.0.0-beta.464 之前的所有版本
- 修复版本: 4.0.0-beta.464
- 关键组件:
app/Livewire/ResourceOperations.php文件中的cloneTo()Livewire 方法。
漏洞原理分析
根据 NVD 描述和 CWE-639 (授权绕过 - 通过对用户控制的密钥操作绕过授权) 的分类,此漏洞属于典型的 水平权限提升 或 不安全的直接对象引用 (IDOR) 变种。具体分析如下:
克隆功能流程: Coolify 允许用户克隆一个现有资源。该操作通常涉及两个关键实体:
- 源资源 (Source Resource): 被克隆的对象。
- 目标资源 (Destination Resource): 克隆后的资源所归属的、将被附加到的目标环境(如团队)。
授权缺陷分析:
- 源资源检查存在,但目的不明确?:描述中提到“authorizes the source resource”,但这可能指检查当前用户“拥有”或“有权操作”该源资源。这是常见的授权检查,但显然不充分。
- 关键缺陷 - 目标资源权限检查缺失:描述明确指出问题在于“resolves destination resources with unscoped Eloquent lookups”。这意味着在执行克隆操作时,
cloneTo()方法直接使用用户提供的目标资源 ID(很可能是通过请求参数传入)进行数据库查询,而没有将该查询限制在当前用户或团队可以访问的范围内。 - 攻击向量:
- 侦察: 一个普通用户登录后,可以正常操作自己团队内的资源。
- 构造请求: 该用户发送一个克隆请求,指定一个自己有权克隆的源资源,但在请求中恶意修改目标资源 ID 为另一个团队(例如
team_id=2的某资源 ID)。 - 绕过授权: 由于后端代码在处理
cloneTo()时,只验证了对源资源的操作权限,却使用了未加范围限制(unscoped)的查询来解析目标资源。系统会直接从数据库中根据ID找到目标资源,无论它属于哪个团队。 - 结果: 攻击者成功将资源克隆到了自己无权访问的团队中,从而获得了该团队内部资源的访问权限。或者更糟,攻击者可以将恶意配置或数据注入到其他团队环境中。
技术细节推断:
- CWE-639 表明这是一种授权绕过,依赖于用户提供的“密钥”(在本例中就是目标资源的ID)。
unscoped Eloquent lookups是 Laravel (Coolify 很可能基于此框架) 中一个关键概念。Eloquent 的“全局作用域”(Global Scopes)常用于强制实现租户隔离,例如自动添加where team_id = current_team_id条件。使用unscoped方法或模型查询时,会禁用这些作用域,导致查询返回所有团队的数据,而不仅仅是用户自己团队的数据。这正是漏洞的根源。
影响评估
| 评估维度 | 分析结果 |
|---|---|
| 攻击复杂度 (AC) | 低。攻击者只需构造带有不同目标资源 ID 的 HTTP 请求,无需进行复杂的网络攻击或代码执行。 |
| 所需权限 (PR) | 低。攻击者需要一个有效的、能正常登录 Coolify 系统的普通用户账号即可。 |
| 用户交互 (UI) | 无。攻击无需受害者点击链接或触发其他操作。 |
| 攻击向量 (AV) | 网络。该漏洞可通过网络远程发起。 |
| 影响范围 (S) | 已变更。漏洞的核心影响是突破了系统预设的租户边界,影响了与攻击者原权限不同的其他组件/资源。 |
| 机密性影响 | 高。攻击者可以读取被克隆资源中的数据(如数据库密码、API密钥、应用配置等),这些属于高度敏感的目标团队信息。 |
| 完整性影响 | 高。攻击者可以将克隆的资源引入目标团队,可能修改目标团队的环境配置、应用代码或数据。 |
| 可用性影响 | 低。单纯的克隆操作不太可能直接导致服务中断,但如果恶意资源包含破坏性代码或配置,可能间接影响可用性,因此CVSS评分为“低”。 |
实际威胁: 该漏洞威胁极高。利用难度低、影响范围广、后果严重。它直接破坏了多租户环境的核心安全假设——租户隔离。一个低级用户即可通过简单的API调用,获取其他团队(甚至可能是管理员团队)的敏感资源访问权,可能导致大规模数据泄露和横向移动攻击。
修复建议
强烈建议所有 Coolify 用户立即进行升级。
官方修复方案:
- 升级版本: 立即将 Coolify 实例升级至 4.0.0-beta.464 或更高版本。该版本已修复
ResourceOperations.php中的授权逻辑不足问题。
- 升级版本: 立即将 Coolify 实例升级至 4.0.0-beta.464 或更高版本。该版本已修复
临时缓解措施(在无法立即升级时):
- 网络访问控制: 将 Coolify 的管理界面限制在可信的内部网络或VPN内,避免暴露在公网上,从而降低被远程利用的概率。
- 最小权限原则: 严格审查用户账号和角色权限,确保用户仅拥有完成其工作所需的最小权限。移除不必要的低级用户。
- 手动审计 (专家级): 如果无法升级,安全团队应立即审查
app/Livewire/ResourceOperations.php中的cloneTo()方法。核心修复逻辑是:在解析和使用目标资源ID前,增加一个授权检查,确保该资源属于当前登录用户所在的团队。例如,在 Laravel 中,使用带全局作用域的模型查询,或者显式where('team_id', auth()->user()->current_team_id)。
参考资料
- CVE 详情: NVD - CVE-2026-34037
- CWE 分类: CWE-639: Authorization Bypass Through User-Controlled Key
- 官方修复公告: 建议关注 Coolify 官方 GitHub 仓库的 Release 页面,以获取更详细的修复公告和补丁信息。Coolify 使用
security-advisories@github.com作为报告渠道。
💬 评论