Authenticated code execution via Base64 object deserialization
Published Dec 30, 2025 · Updated Dec 30, 2025
Deserialization in Dromara Sa-Token 1.44.0 and earlier allows remote authenticated users to execute code via crafted Base64 object data. SaSerializerTemplateForJdkUseBase64 decodes an attacker-controlled string and passes the resulting bytes to ObjectInputStream.readObject without a class allowlist or ObjectInputFilter. Exploitation requires an application to select this serializer, expose an attacker-influenced serialized value, and load a usable gadget class; consequences include code execution, data access, or service interruption.
Summary
What happened
Deserialization in Dromara Sa-Token 1.44.0 and earlier allows remote authenticated users to execute code via crafted Base64 object data. SaSerializerTemplateForJdkUseBase64 decodes an attacker-controlled string and passes the resulting bytes to ObjectInputStream.readObject without a class allowlist or ObjectInputFilter. Exploitation requires an application to select this serializer, expose an attacker-influenced serialized value, and load a usable gadget class; consequences include code execution, data access, or service interruption.
The record
- CVE
- CVE-2025-15222
- Published
- Dec 30, 2025
- Updated
- Dec 30, 2025
- Vendor
- Dromara
- Product
- Sa-Token
- Classifications
- CWE-20, CWE-502
- Attack vector
- network
- Privileges
- authenticated
Timeline
How it unfolded
- Dec 30, 2025CVE publishedPublication date reported by the CVE source.
- Dec 30, 2025Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=1.0
- Affected versionversion=1.1
- Affected versionversion=1.10
- Affected versionversion=1.11
- Affected versionversion=1.12
- Affected versionversion=1.13
- Affected versionversion=1.14
- Affected versionversion=1.15
- Affected versionversion=1.16
- Affected versionversion=1.17
- Affected versionversion=1.18
- Affected versionversion=1.19
- Affected versionversion=1.2
- Affected versionversion=1.20
- Affected versionversion=1.21
- Affected versionversion=1.22
- Affected versionversion=1.23
- Affected versionversion=1.24
- Affected versionversion=1.25
- Affected versionversion=1.26
- Affected versionversion=1.27
- Affected versionversion=1.28
- Affected versionversion=1.29
- Affected versionversion=1.3
- Affected versionversion=1.30
- Affected versionversion=1.31
- Affected versionversion=1.32
- Affected versionversion=1.33
- Affected versionversion=1.34
- Affected versionversion=1.35
- Affected versionversion=1.36
- Affected versionversion=1.37
- Affected versionversion=1.38
- Affected versionversion=1.39
- Affected versionversion=1.4
- Affected versionversion=1.40
- Affected versionversion=1.41
- Affected versionversion=1.42
- Affected versionversion=1.43
- Affected versionversion=1.44.0
- Affected versionversion=1.5
- Affected versionversion=1.6
- Affected versionversion=1.7
- Affected versionversion=1.8
- Affected versionversion=1.9
What conditions does exploitation require?
What is affected?
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Public exploit references
- satoken-deserialization proof of conceptproof of concept · unverified
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo