CVE-2021-32824

Apache Dubbo is a java based, open source RPC framework. Versions prior to 2.6.10 and 2.7.10 are vulnerable to pre-auth remote code execution via arbitrary bean manipulation in the Telnet handler. The Dubbo main service port can be used to access a Telnet Handler which offers some basic methods to collect information about the providers and methods exposed by the service and it can even allow to shutdown the service. This endpoint is unprotected. Additionally, a provider method can be invoked using the `invoke` handler. This handler uses a safe version of FastJson to process the call arguments. However, the resulting list is later processed with `PojoUtils.realize` which can be used to instantiate arbitrary classes and invoke its setters. Even though FastJson is properly protected with a default blocklist, `PojoUtils.realize` is not, and an attacker can leverage that to achieve remote code execution. Versions 2.6.10 and 2.7.10 contain fixes for this issue.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:apache:dubbo:*:*:*:*:*:*:*:*
cpe:2.3:a:apache:dubbo:*:*:*:*:*:*:*:*

History

21 Nov 2024, 06:07

Type Values Removed Values Added
References () https://securitylab.github.com/advisories/GHSL-2021-034_043-apache-dubbo/ - Exploit, Third Party Advisory () https://securitylab.github.com/advisories/GHSL-2021-034_043-apache-dubbo/ - Exploit, Third Party Advisory
Summary
  • (es) Apache Dubbo es un framework RPC de código abierto basado en Java. Las versiones anteriores a 2.6.10 y 2.7.10 son vulnerables a la ejecución remota de código previo a la autenticación mediante manipulación arbitraria de beans en el controlador Telnet. El puerto de servicio principal de Dubbo se puede utilizar para acceder a un controlador Telnet que ofrece algunos métodos básicos para recopilar información sobre los proveedores y los métodos expuestos por el servicio e incluso puede permitir cerrar el servicio. Este punto final no está protegido. Además, se puede invocar un método de proveedor utilizando el controlador `invoke`. Este controlador utiliza una versión segura de FastJson para procesar los argumentos de la llamada. Sin embargo, la lista resultante se procesa posteriormente con `PojoUtils.realize`, que puede usarse para crear instancias de clases arbitrarias e invocar a sus definidores. Aunque FastJson está protegido adecuadamente con una lista de bloqueo predeterminada, `PojoUtils.realize` no lo está, y un atacante puede aprovechar eso para lograr la ejecución remota de código. Las versiones 2.6.10 y 2.7.10 contienen correcciones para este problema.

Information

Published : 2023-01-03 18:15

Updated : 2024-11-21 06:07


NVD link : CVE-2021-32824

Mitre link : CVE-2021-32824

CVE.ORG link : CVE-2021-32824


JSON object : View

Products Affected

apache

  • dubbo
CWE
CWE-502

Deserialization of Untrusted Data