Disclosed vulnerabilities
Fixed: Dec 29, 2019
CVE-2019-17564 Published: Feb 10, 2020

Unsafe deserialization in Apache Dubbo

9.8 Critical Severity Apache JAVA RCE unsafe deserialization
Dor Tumarkin Reported by Checkmarx Zero

Summary

Unsafe deserialization vulnerability in Apache Dubbo which has HTTP remoting enabled, could allow to trigger remote code execution with no authentication.

This issue exists due to the use of a remote deserialization service in Spring Framework, whose documentation explicitly recommends not to use with untrusted data, combined with an outdated dependency. An attacker may submit a POST request with a Java object in it to completely compromise a Provider instance of Apache Dubbo.

Product

Apache Dubbo 2.7.0 before 2.7.5, 2.6.0 before 2.6.8, and 2.5.x versions.

Impact

According to GitHub, more than 4,800 repositories are dependent on Dubbo. Among them are major Chinese Companies, including Alibaba Group and China Telecom.

Steps to reproduce

Once an attacker has the bean’s URL, all he has to do to exploit this vulnerability is to submit a malicious gadget chain via a standard POST request.

Please see the blog post for further information about this.

Expected result

Once the vulnerability is triggered by the malicious gadget chain sent by the attacker, the malicious code is executed, and an exception will be thrown. However, the application will continue to function as intended otherwise, resulting in stable exploitation for the given gadget chain.

Remediation

Update Dubbo dependency to 2.6.8 or 2.6.9, or to a version above 2.7.4.

Credit

This issue was discovered and reported by Checkmarx SCA Security Researcher Dor Tumarkin.

Resources

  1. Blog
  2. Advisory
  3. Mail Thread
  4. 9b18fe2
  5. POC Video

Stay connected and never miss a research update!