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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Apache Software Foundation | Apache Dubbo | Apache Dubbo 2.7.x – < 2.7.8, Apache Dubbo 2.6.x – < 2.6.9 | 2.7.8 |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
GitHub 2 repositories
-
Dor-Tumarkin/CVE-2021-25641-Proof-of-Concept ★ 52 · Jun 6, 2021
Apache/Alibaba Dubbo <= 2.7.3 PoC Code for CVE-2021-25641 RCE via Deserialization of Untrusted Data; Affects Versions <= 2.7.6 With Different Gadgets
-
l0n3rs/CVE-2021-25641 ★ 4 · Nov 10, 2022
A Exploit Tool For CVE-2021-25641.
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | com.alibaba:dubbo | >= 2.5.0, < 2.6.9 | 2.6.9 | GHSA-v2rg-8cwr-75g8 |
| Maven | org.apache.dubbo:dubbo | >= 2.5.0, < 2.7.8 | 2.7.8 | GHSA-v2rg-8cwr-75g8 |