Record summary

EIP currently links 1 curated repository PoC to CVE-2024-47552.

Description

Deserialization of Untrusted Data vulnerability in Apache Seata (incubating). This issue affects Apache Seata (incubating): from 2.0.0 before 2.2.0. Severity Justification: The Apache Seata security team assesses the severity of this vulnerability as "Low" due to stringent real-world mitigating factors. First, the vulnerability is strictly isolated to the Raft cluster mode, an optional and non-default feature introduced in v2.0.0, while most users rely on the unaffected traditional architecture. Second, Seata is an internal middleware; communication between TC and RM/TM occurs entirely within trusted internal networks. An attacker would require prior, unauthorized access to the Intranet to exploit this, making external exploitation highly improbable. Users are recommended to upgrade to version 2.2.0, which fixes the issue.

Description source: CVE List

Exploitation context

Available material

Curated repository PoCs
1

CISA SSVC decision

ExploitationNone
AutomatableYes
Technical impactTotal

CISA Coordinator · SSVC 2.0.3 · Evaluated Mar 24, 2025 · Source: CVE List

Affected products and versions

2
ProductSourceVersion rangeStatus

Apache Seata (incubating)

Browse Apache Software Foundation / Apache Seata (incubating)org.apache.seata:seata-server

Default status: unaffected

CVE List2.0.0 to < 2.2.0affected

org.apache.seata:seata-config-core

Browse Maven / org.apache.seata:seata-config-core
GitHub Advisory2.0.0 to < 2.2.0 · Fixed in 2.2.0affected

Proofs of concept

1

Curated repository PoCs

GitHubCVE-2025-32897Curated repository PoCby exploitintelStars: 8Exploit14 files

C · 172.8 KiB · linked to 2 vulnerabilities

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

The artifact contains a full exploit orchestrator (poc/poc.py) and a Java exploit (poc/ExploitCVE202532897.java) that demonstrate insecure deserialization in Apache Seata by directly calling vulnerable methods to achieve arbitrary class loading and JNDI injection, which are exploitation behaviors.

Backdoor review

No backdoor observed in reviewed code

The PoC demonstrates CVE-2025-32897 deserialization vulnerabilities in Apache Seata. All code (Java exploit, Python orchestrators) targets the stated vulnerability vectors (CustomDeserializer, RaftSnapshotSerializer, RaftSyncMessageSerializer) and performs only expected exploit behavior: arbitrary class loading, JNDI injection attempts, and unrestricted deserialization. No concealed backdoor, credential theft, persistence, or unrelated payload delivery was observed.

ClassificationExploit
Model confidence98%
AuthenticationNot required
LanguagesPythonJava
Target softwareApache Seata
Attack typesInsecure DeserializationRemote Code ExecutionJNDI Injection
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The primary artifact is classified as an exploit because it contains code that exercises the vulnerability to achieve a malicious effect (arbitrary class loading and JNDI injection) rather than merely detecting it. The Java class ExploitCVE202532897 directly calls vulnerable methods to load arbitrary classes and trigger JNDI lookups, and the Python orchestrator deploys and runs this exploit.

poc/ExploitCVE202532897.java:88-216poc/ExploitCVE202532897.java:238-357poc/poc.py:12-36poc/poc.py:165-203

Requirements

  • Requires a running Docker container with the vulnerable Apache Seata 2.2.0 instance.poc/poc.py:51poc/poc.py:220-228
  • Requires Docker CLI access to execute commands inside the container.poc/poc.py:35poc/poc.py:96-99

Observed behavior

  • Deploys a Java exploit into the vulnerable Docker container and compiles it.poc/poc.py:165-192
  • Starts a TCP callback listener to catch JNDI connection attempts from the exploit.poc/poc.py:106-158poc/poc.py:261-265
  • Executes the Java exploit inside the container, which directly calls vulnerable Seata methods (JacksonSerializer.deserialize, RaftSnapshotSerializer.decode) to trigger arbitrary class loading and JNDI injection.poc/ExploitCVE202532897.java:88-216poc/ExploitCVE202532897.java:238-357poc/poc.py:195-203poc/poc.py:272-276
  • Constructs a Java serialized HashMap payload entirely in Python and passes it to the vulnerable RaftSnapshotSerializer.decode() method inside the container.poc/poc_vector2.py:65-141poc/poc_vector2.py:178-219
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Exploit Behavior
Payload withheldMatches the described CVE-2025-32897 vulnerability vectors; no unrelated actionspoc/ExploitCVE202532897.java:88-216
Exploit Behavior
Payload withheldStandard PoC orchestration for containerized lab environment; no hidden commandspoc/poc.py:165-203
Exploit Behavior
Payload withheldDemonstrates unrestricted deserialization vector; payload is benign HashMappoc/poc_vector2.py:65-141
Exploit Behavior
Payload withheldShows architectural bypass of PERMITS whitelist; no malicious payload executionpoc/poc_vector3.py:58-157
Review boundaries

What the analysis did not establish

  • The evidence packet reports complete_artifact_coverage as false, indicating that not all files from the artifact were included in the analysis.
  • The exploit code is executed inside a Docker container via 'docker exec' and does not demonstrate a network-based attack against the SOFABolt protocol.
  • Binary files (1 non-text media file, 6 unclassified files) were not analyzed; their content is unknown.
  • The review is limited to the supplied text evidence and does not verify runtime behavior or network traffic.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

References

6