Description
Each Apache Dubbo server will set a serialization id to tell the clients which serialization protocol it is working on. But for Dubbo versions before 2.7.8 or 2.6.9, an attacker can choose which serialization id the Provider will use by tampering with the byte preamble flags, aka, not following the server's instruction. This means that if a weak deserializer such as the Kryo and FST are somehow in code scope (e.g. if Kryo is somehow a part of a dependency), a remote unauthenticated attacker can tell the Provider to use the weak deserializer, and then proceed to exploit it.
Exploits (2)
nomisec
WORKING POC
53 stars
by Dor-Tumarkin · poc
https://github.com/Dor-Tumarkin/CVE-2021-25641-Proof-of-Concept
References (1)
Core 1
Core References
Mailing List, Vendor Advisory x_refsource_misc
https://lists.apache.org/thread.html/r99ef7fa35585d3a68762de07e8d2b2bc48b8fa669a03e8d84b9673f3%40%3Cdev.dubbo.apache.org%3E
Scores
CVSS v3
9.8
EPSS
0.7462
EPSS Percentile
98.9%
Attack Vector
NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Details
CWE
CWE-502
Status
published
Products (3)
apache/dubbo
2.5.0 - 2.6.9
com.alibaba/dubbo
2.5.0 - 2.6.9Maven
org.apache.dubbo/dubbo
2.5.0 - 2.7.8Maven
Published
Jun 01, 2021
Tracked Since
Feb 18, 2026