Deserialization in Apache Dubbo
CVE-2021-25641
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.
Vulnerability class: Insecure Deserialization
EPSS: 0.177 (96.8th percentile) — read the EPSS interpretation.
CVSS v3 metric
CVSS v3 base score 9.8 (Critical). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
Affected products
- Apache Dubbo
- Apache Software Foundation Dubbo — versions Apache Dubbo 2.7.x, Apache Dubbo 2.6.x
Weakness classification (CWE)
Public proof-of-concept exploits
References
- security@apache.org (Mailing List, x_refsource_MISC, Vendor Advisory)
Frequently asked questions
- What is CVE-2021-25641?
- CVE-2021-25641 is a critical-severity vulnerability in Apache Dubbo, classified under Deserialization of Untrusted Data. CVSS score: 9.8/10. Published 2021-06-01.
- How severe is CVE-2021-25641?
- Critical severity. CVSS v3 base score is 9.8 out of 10.
- Is CVE-2021-25641 known to be exploited?
- 24 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.