🔴 【深度分析】严重安全漏洞: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) 变种。具体分析如下:

  1. 克隆功能流程: Coolify 允许用户克隆一个现有资源。该操作通常涉及两个关键实体:

    • 源资源 (Source Resource): 被克隆的对象。
    • 目标资源 (Destination Resource): 克隆后的资源所归属的、将被附加到的目标环境(如团队)。
  2. 授权缺陷分析:

    • 源资源检查存在,但目的不明确?:描述中提到“authorizes the source resource”,但这可能指检查当前用户“拥有”或“有权操作”该源资源。这是常见的授权检查,但显然不充分。
    • 关键缺陷 - 目标资源权限检查缺失:描述明确指出问题在于“resolves destination resources with unscoped Eloquent lookups”。这意味着在执行克隆操作时,cloneTo() 方法直接使用用户提供的目标资源 ID(很可能是通过请求参数传入)进行数据库查询,而没有将该查询限制在当前用户或团队可以访问的范围内。
    • 攻击向量:
      1. 侦察: 一个普通用户登录后,可以正常操作自己团队内的资源。
      2. 构造请求: 该用户发送一个克隆请求,指定一个自己有权克隆的源资源,但在请求中恶意修改目标资源 ID 为另一个团队(例如 team_id=2 的某资源 ID)。
      3. 绕过授权: 由于后端代码在处理 cloneTo() 时,只验证了对源资源的操作权限,却使用了未加范围限制(unscoped)的查询来解析目标资源。系统会直接从数据库中根据ID找到目标资源,无论它属于哪个团队。
      4. 结果: 攻击者成功将资源克隆到了自己无权访问的团队中,从而获得了该团队内部资源的访问权限。或者更糟,攻击者可以将恶意配置或数据注入到其他团队环境中。
  3. 技术细节推断:

    • 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 用户立即进行升级。

  1. 官方修复方案:

    • 升级版本: 立即将 Coolify 实例升级至 4.0.0-beta.464 或更高版本。该版本已修复 ResourceOperations.php 中的授权逻辑不足问题。
  2. 临时缓解措施(在无法立即升级时):

    • 网络访问控制: 将 Coolify 的管理界面限制在可信的内部网络或VPN内,避免暴露在公网上,从而降低被远程利用的概率。
    • 最小权限原则: 严格审查用户账号和角色权限,确保用户仅拥有完成其工作所需的最小权限。移除不必要的低级用户。
    • 手动审计 (专家级): 如果无法升级,安全团队应立即审查 app/Livewire/ResourceOperations.php 中的 cloneTo() 方法。核心修复逻辑是:在解析和使用目标资源ID前,增加一个授权检查,确保该资源属于当前登录用户所在的团队。例如,在 Laravel 中,使用带全局作用域的模型查询,或者显式 where('team_id', auth()->user()->current_team_id)。

参考资料