Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en la función GenericFilter en la API de Java Reflection en Apache Dubbo (CVE-2021-30179)

Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-502 Deserialización de datos no confiables
Fecha de publicación:
01/06/2021
Última modificación:
07/11/2023

Descripción

Apache Dubbo versiones anteriores a 2.6.9 y 2.7.9, por defecto admite llamadas genéricas a métodos arbitrarios expuestos por interfaces de proveedor. Estas invocaciones son manejadas por la función GenericFilter que encontrará el servicio y método especificado en los primeros argumentos de la invocación y usará la API de Java Reflection para realizar la llamada final. La firma para los métodos $invoke o $invokeAsync es Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Object; donde el primer argumento es el nombre del método a invocar, el segundo es una matriz con los tipos de parámetros para el método que es invocado y el tercero es una matriz con los argumentos de llamada reales. Además, la persona que llama también debe ajustar un adjunto RPC que especifique que la llamada es una llamada genérica y cómo decodificar los argumentos. Los valores posibles son: - true - raw.return - nativejava - bean - protobuf-json Un atacante puede controlar este adjunto RPC y ajustarlo en nativejava para forzar la deserialización java de la matriz de bytes ubicada en el tercer argumento

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:apache:dubbo:*:*:*:*:*:*:*:* 2.5.0 (incluyendo) 2.5.10 (incluyendo)
cpe:2.3:a:apache:dubbo:*:*:*:*:*:*:*:* 2.6.0 (incluyendo) 2.6.9 (excluyendo)
cpe:2.3:a:apache:dubbo:*:*:*:*:*:*:*:* 2.7.0 (incluyendo) 2.7.10 (excluyendo)