• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

Apache Dubbo多个高危漏洞(CVE-2021-32824等)安全通告

【发布时间:2021-12-30】

威胁预警团队

2021/6/24


1. 漏洞综述

1.1 漏洞背景

Apache Dubbo 是阿里巴巴公司开源的一款高性能、轻量级Java RPC分布式服务框架,可为企业应用提供高性能和透明化的RPC远程服务调用方案,是国内使用最广泛的开源服务框架之一。近日,新华三攻防实验室威胁预警团队监测到网络上公开了多个Apache Dubbo远程代码执行漏洞(CVE-2021-25641、CVE-2021-30179、CVE-2021-30180、CVE-2021-30181、CVE-2021-32824),并进行了跟踪和分析。

目前该漏洞部分利用细节已在互联网公开,建议受影响用户及时排查并修复。

1.2漏洞详情

1、 CVE-2021-25641:远程代码执行漏洞

大部分Dubbo用户采用Hessian2作为默认的序列化/反序列化协议,其会对反序列化ID进行检查是否在服务器允许范围内,只支持允许的反序列化类型。但其余反序列化协议并没有类似的安全措施,攻击者可通过设置RPC请求头中的反序列化ID以更改默认协议,从而绕过Hessian2保护措施实现远程代码执行。

2、 CVE-2021-30179:远程代码执行漏洞

Apache Dubbo 默认支持对外提供接口的任意方法的泛型调用,该调用由GenericFilter 处理,通过查找调用的第一个参数中指定的服务和方法,并使用 Java 反射 API 进行最终调用。但由于过滤不严,攻击者控制某个参数值触发反序列化,实现任意代码执行。

3、 CVE-2021-30180:远程代码执行漏洞

Apache Dubbo 使用标签路由转发客户端请求到对应服务器进行处理,这些规则会被加载到配置中心(例如:Zookeeper、Nacos 等)。在解析规则时,Dubbo通过 SnakeYAML 库进行规则加载,默认情况下会调用构造函数。具备配置中心访问权限的攻击者可通过上传恶意规则文件,反序列化后达到远程代码执行。

4、 CVE CVE-2021-30181:远程代码执行漏洞

Apache Dubbo 使用脚本路由转发客户端请求到对应服务器进行处理,这些规则会被加载到配置中心(例如:Zookeeper、Nacos 等)。在解析规则时,Dubbo将使用 JRE ScriptEngineManager 加载 ScriptEngine 并运行脚本提供的规则,该规则默认允许执行任意 Java 代码。具备配置中心访问权限的攻击者可通过注入恶意脚本,造成远程代码执行。

5、 CVE-2021-32824:远程代码执行漏洞

Dubbo主服务端口可用来访问Telnet处理程序,该处理程序提供了一些基本方法,用于收集有关服务提供者和公开的方法等信息,甚至可以关闭服务。此外,还可以使用处理程序调用提供的方法,采用安全版本的FastJson处理调用参数,并通过PojoUtils.realize进一步处理。PojoUtils可以用来实例化任意类并调用其setters,从而攻击者可以利用PojoUtils.realize来实现远程代码执行。

2. 影响范围

Apache Dubbo < 2.7.10

Apache Dubbo < 2.6.10

3. 处置方法

3.1 官方补丁

目前官方已发布新版本,请及时升级到对应的安全版本:https://github.com/apache/dubbo

4. 参考链接

https://securitylab.github.com/advisories/GHSL-2021-034_043-apache-dubbo/

新华三官网
联系我们