CVE-2025-60800jshERP是一款开源的企业资源计划(ERP)系统,广泛应用于中小型企业的日常运营管理。该系统基于Spring Boot框架开发,提供用户管理、财务管理、库存管理等核心功能。
CVE-2025-60800漏洞存在于jshERP的/jshERP-boot/user/info接口中,属于经典的访问控制错误(Incorrect Access Control)漏洞。在系统设计时,开发者未能对该接口实施充分的权限验证机制,导致任何未经认证的用户都可以通过发送特制的HTTP GET请求来获取系统中其他用户的敏感个人信息。
该漏洞的CVSS评分达到7.5分,属于高危级别。攻击者无需任何特殊权限,也不需要与目标用户进行任何交互,仅需知道或猜测到目标用户的ID即可发起攻击。攻击成功后,攻击者可以获取包括但不限于用户名、邮箱、电话号码、职位信息、部门信息等敏感数据。
这些泄露的敏感信息可被用于进一步的社会工程学攻击、身份冒充或作为其他高级攻击的跳板。由于jshERP通常部署在企业内部网络,攻击者获取的用户信息可能涉及企业内部架构、人员组织等关键情报,对企业信息安全构成严重威胁。
漏洞根源在于jshERP系统的访问控制机制设计缺陷。具体问题出在/jshERP-boot/user/info接口的权限验证逻辑上。
正常情况下,用户信息查询接口应当验证当前请求发起者是否具有查看目标用户信息的权限。典型的实现方式包括:验证当前会话用户与目标用户是否为同一人、验证当前用户是否具有管理员权限、验证当前用户与目标用户是否属于同一部门等。然而,该接口的实现存在以下问题:
1. 缺少认证状态检查:接口未验证请求是否来自已登录用户,导致匿名用户可以直接访问。
2. 缺少权限校验:即使请求来自已登录用户,接口也未验证当前用户是否有权查看目标用户的信息。
3. 直接返回敏感数据:接口在未进行充分验证的情况下,直接将数据库中的用户敏感信息返回给请求者。
攻击者只需构造如下HTTP请求即可触发漏洞:
GET /jshERP-boot/user/info?userId={target_user_id}
其中userId参数为目标用户的ID,可以是数字ID或用户名。服务器在收到请求后,会直接查询数据库并返回该用户的完整信息,包括姓名、联系方式、职位等敏感数据。
由于该接口采用RESTful风格设计,且返回格式为JSON,攻击者可以轻松地通过脚本自动化批量采集系统中的用户信息。