Skip to content
OpenAdvisories
Critical · 9.8 Public exploit CVE-2021-25641 EUVD-2022-1540GHSA-v2rg-8cwr-75g8

Dubbo Zookeeper does not check serialization id

Published May 29, 2021 · Updated Aug 3, 2024 · Assigned by apache

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

VendorProductAffectedFixed
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.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 2 repositories

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
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

References