🟠 【深度分析】高危安全漏洞:CVE-2026-65013

CVSS 评分: 高危(8.7)🟠  状态: Deferred  发布时间: 2026-07-22


🔍 技术细节速览

字段
CVE ID CVE-2026-65013
CVSS 评分 8.7 🟠
严重程度 高危
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CWE 分类 CWE-639
发布时间 2026-07-22
最后更新 2026-07-23
状态 Deferred
数据来源 disclosure@vulncheck.com

⚠️ CVSS 评分:8.7(高危)

CVSS 向量CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
攻击难度:低(网络可达、无需特殊攻击条件、仅需低权限认证)
影响范围:机密性、完整性、可用性均为高,且无横向扩散风险


漏洞概述

CVE-2026-65013 是发现于 Onlook 项目(版本 ≤ 0.2.32)中的损坏的对象级授权(Broken Object Level Authorization, BOLA) 漏洞。该漏洞允许通过身份验证的攻击者通过向 tRPC API 端点(如 project.getmember.removechat.conversation.delete)直接提供任意的 UUID(如 projectIdconversationId)来访问、修改甚至删除其他用户的资源,包括项目数据、项目成员及聊天会话历史。
漏洞已在 commit 423e2e9 中修复,但截至公告日尚未发布正式补丁版本(NVD 状态标记为 Deferred)。


受影响组件与版本

组件 受影响版本 修复版本
Onlook(前端/后端应用) ≤ 0.2.32 包含 commit 423e2e9 及之后的版本

注意:Onlook 是一个基于 tRPC 构建的协作/项目管理工具(推测),其 API 采用 UUID 标识资源。漏洞影响所有使用上述版本的服务。


漏洞原理分析

1. 漏洞类型:CWE-639(通过用户控制的关键字绕过授权)

该漏洞属于典型的 Broken Object Level Authorization,具体表现为:

  • 问题根源:后端 API 在接收资源标识符(如 projectIdconversationId)时,仅验证了请求者是否已认证(PR:L),但未检查该标识符是否属于当前用户
  • 攻击方式:攻击者只需通过 tRPC 客户端向受影响的端点发送请求,将其他用户的 UUID 作为参数传入,即可绕过授权限制。
  • 攻击复杂度:极低(AC:L,AT:N)。无需特殊技巧,只需枚举或猜测有效的 UUID(由于 UUID 通常基于时间或随机生成,攻击者可通过监控网络流量、日志泄露或简单猜测获取)。

2. 受影响的 API 端点

根据 CVE 描述,以下 tRPC 过程存在漏洞:

  • project.get – 读取任意项目详情
  • member.remove – 删除任意项目成员(需先获取成员对应的用户ID)
  • chat.conversation.delete – 删除任意聊天会话对话历史

3. 攻击前提

  • 攻击者需拥有该应用的合法账户(PR:L)。
  • 无需用户交互(UI:N)。
  • 攻击向量为网络(AV:N),可远程执行。

影响评估

利用难度分析(基于 CVSS 4.0 向量)

指标 影响
AV(攻击向量) N(网络) 攻击者无需物理接触
AC(攻击复杂度) L(低) 无需特殊条件,直接请求即可
AT(攻击所需特权) N(无) 无需额外特权
PR(权限要求) L(低) 需具备普通认证用户权限(最低级别)
UI(用户交互) N(无) 被攻击用户无需任何操作
VC/VI/VA(机密性/完整性/可用性) H(高) 可读取、修改、删除其他用户的资源
SC/SI/SA(安全范围) N(无) 仅影响受保护资源,未扩散至其他系统

实际威胁场景

  • 数据泄露:攻击者可枚举项目 ID,读取所有项目的敏感数据(如设计原型、成员信息、聊天记录)。
  • 数据篡改:可删除其他用户的项目成员,导致协作中断。
  • 服务破坏:批量删除聊天会话,导致用户历史消息永久丢失。
  • 权限提升:虽然无法直接提升自身账户权限,但可借助对其他用户资源的控制间接实现恶意操作(如冒充管理员删除关键资源)。

注意:CVSS 4.0 中无 Privileges Required (PR) 的横向提升,但漏洞本身允许普通用户访问本受限的资源,已构成严重威胁。


修复建议

1. 官方修复方案

升级至包含 commit 423e2e9 的版本。由于 NVD 状态为 Deferred,建议密切关注项目仓库,获取正式发布的补丁版本。

2. 临时缓解措施(在补丁发布前)

  • 强化后端授权中间件:在 tRPC 路由处理函数中,对每一个资源操作(读/写/删)增加 所有权检查,例如:
    // 伪代码示例
    const project = await prisma.project.findUnique({ where: { id: input.projectId } });
    if (!project || project.ownerId !== session.user.id) {
      throw new TRPCError({ code: 'FORBIDDEN' });
    }
    
  • 日志审计:启用对敏感 API 调用(尤其是 *.get, *.remove, *.delete)的详细日志,并监控异常流量(如单个用户大量请求不同 UUID)。
  • 网络访问控制:若可接受,限制 API 只允许来自可信 IP 或内网访问(降低外部枚举风险)。

3. 开发建议

  • 采用 统一授权框架(如 Casbin、Pundit)集中管理资源访问权限。
  • 使用 非连续且不可猜测的标识符(如 UUID v4),但注意这不能替代授权检查——漏洞本身并非因 UUID 可预测性,而是缺乏检查。

参考资料

来源 链接
CVE 详情页(NVD) https://nvd.nist.gov/vuln/detail/CVE-2026-65013
CWE-639 定义 https://cwe.mitre.org/data/definitions/639.html
CVSS 4.0 计算器 https://www.first.org/cvss/calculator/4.0
修复 commit(需验证) 建议搜索 Onlook 仓库 commit 423e2e9

免责声明:本文基于 NVD 公开数据和 CVSS 4.0 向量进行技术分析,不包含未经证实的技术细节。所有推断均以 NVD 描述为唯一依据。实际漏洞利用细节可能因环境差异而有所不同,请以官方补丁说明为准。