Apache Dubbo 惊爆高危漏洞,快升级

三丰 soft张三丰

漏洞背景

2020年06月23日, 360CERT监测发现 Apache Dubbo 官方 发布了 Apache Dubbo 远程代码执行 的风险通告,该漏洞编号为 CVE-2020-1948,漏洞等级:高危。

Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

Apache Dubbo Provider 存在 反序列化漏洞,攻击者可以通过RPC请求发送无法识别的服务名称或方法名称以及一些恶意参数有效载荷,当恶意参数被反序列化时,可以造成远程代码执行。

风险等级

360CERT对该漏洞的评定结果如下

漏洞检测

(一)版本检测

1.相关用户可在Dubbo的Web日志界面查看当前的Dubbo版本号,路径为/log.html或/sysinfo/logs

2.用户也可在项目的pom.xml文件中查看当前使用的Dubbo版本号

若版本在受影响范围内即存在安全风险。

远程过程调用(RPC)简介

sockets是客户端/服务器网络通信模型中的基础,它为程序与程序之间建立连接、收发信息提供了相对简单的机制(甚至可以使用read/write系统调用),两个程序可以位于同一个主机,也可以位于不同的主机。

然而,这种接口方式在某种程序上迫使我们使用read/write接口设计分布式应用系统,而这不是我们通常所设计集中式应用系统的方法。

在集中式应用系统设计中,过程调用是标准的接口模式。如果想要在集中式计算系统中使用分布式系统的计算能力,那么一般不使用基于输入/输出的通信方法。

1984年,Birrell and Nelson设计了一种使程序可以调用其他主机上方法的机制,主机A上的进程可以调用主机B上的方法。

当主机A的进程调用主机B上的方法时,A进程挂起,B进程开始执行,B执行结束后结果返回给A,A进程继续的执行。这个机制就是RPC(远程过程调用)。

漏洞详情

Apache Dubbo Provider 存在 反序列化漏洞,攻击者可以通过RPC请求发送无法识别的服务名称或方法名称以及一些恶意参数有效载荷,当恶意参数被反序列化时,可以造成远程代码执行。

影响版本

•Dubbo 2.7.0 - 2.7.6 •Dubbo 2.6.0 - 2.6.7 •Dubbo 2.5.x (官方不再维护)

修复建议

通用修补建议:建议广大用户及时升级到2.7.7或更高版本,下载地址为:https://github.com/apache/dubbo/releases/tag/dubbo-2.7.7

腾讯安全解决方案

1.腾讯云防火墙已支持拦截防御Apache Dubbo Provider 反序列化远程代码执行漏洞利用; 2.腾讯T-Sec主机安全(云镜)已支持检测Apache Dubbo Provider 反序列化远程代码执行漏洞; 3.腾讯T-Sec高级威胁检测系统(御界)已支持检测Apache Dubbo Provider 反序列化远程代码执行漏洞的攻击利用;