漏洞通告 | Oracle Coherence反序列化远程代码执行(CVE-2020-2555)

该漏洞允许未经身份验证的攻击者通过构造T3网络协议请求进行攻击,成功利用该漏洞可实现在目标主机上执行任意代码。使用了Oracle Coherence库的产品受此漏洞影响,在WebLogic Server 11g Release(10.3.4)及以上版本的安装包中默认集成了Oracle Coherence库。

一、漏洞描述

2020年1月15日,Oracle官方发布了2020年1月关键补丁更新公告,修复了334个不同程度的漏洞。其中包括一个Oracle Coherence反序列化远程代码执行漏洞(CVE-2020-2555),CVSS评分为9.8;该漏洞允许未经身份验证的攻击者通过构造T3网络协议请求进行攻击,成功利用该漏洞可实现在目标主机上执行任意代码。使用了Oracle Coherence库的产品受此漏洞影响,在WebLogic Server 11g Release(10.3.4)及以上版本的安装包中默认集成了Oracle Coherence库。

Coherence是Oracle建立一种高可靠和高扩展集群计算的一个关键部件,Coherence在可靠的、高度可伸缩的对等集群协议之上提供了复制的、分布式的(分区的)数据管理和缓存服务。目前漏洞细节已公开,请受影响的用户及时进行防护。漏洞复现成功的截图如下:

参考链接:

https://www.oracle.com/security-alerts/cpujan2020.html

https://docs.oracle.com/cd/E18686_01/coh.37/e18692/activecache.htm#COHTU725

二、影响范围

受影响版

  • Oracle Coherence 3.7.1.17
  • Oracle Coherence 12.1.3.0.0
  • Oracle Coherence 12.2.1.3.0
  • Oracle Coherence 12.2.1.4.0

 

三、漏洞分析

本次官方的补丁更新修复了LimitFilter类导致反序列化的安全问题。

分析LimitFilter的代码发现在toString方法内部调用了ValueExtractor的extract 方法:

调用ReflectionExtractor类的extract方法,可以通过传入参数反射执行命令,类似于CommonsCollections1的Gadget链:

四、漏洞防护

4.1 安装补丁

目前官方已针对受支持的产品版本发布了修复该漏洞的安全补丁,请受影响的用户尽快安装进行防护,下载链接:

https://support.oracle.com/rs?type=doc&id=2602410.1

4.2 临时缓解措施

若相关用户暂时无法安装修复补丁,可通过控制T3协议的访问来临时阻断针对利用T3协议漏洞的攻击。Weblogic Server 提供了名为 weblogic.security.net.ConnectionFilterImpl 的默认连接筛选器,此连接筛选器接受所有传入连接,可通过此连接筛选器配置规则,对t3及t3s协议进行访问控制,详细操作步骤如下:

  1. 进入Weblogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置。

  1. 在连接筛选器中输入:security.net.ConnectionFilterImpl,参考以下写法,在连接筛选器规则中配置符合企业实际情况的规则:
127.0.0.1 * * allow t3 t3s

本机IP * * allow t3 t3s

允许访问的IP  * * allow t3 t3s  

* * * deny t3 t3s

连接筛选器规则格式如下:target localAddress localPort action protocols,其中:

l  target 指定一个或多个要筛选的服务器。

l  localAddress 可定义服务器的主机地址。(如果指定为一个星号 (*),则返回的匹配结果将是所有本地 IP 地址。)

l  localPort 定义服务器正在监听的端口。(如果指定了星号,则匹配返回的结果将是服务器上所有可用的端口)。

l  action 指定要执行的操作。(值必须为“allow”或“deny”。)

l  protocols 是要进行匹配的协议名列表。(必须指定下列其中一个协议:http、https、t3、t3s、giop、giops、dcom 或 ftp。) 如果未定义协议,则所有协议都将与一个规则匹配。

  1. 保存后若规则未生效,建议重新启动Weblogic服务(重启Weblogic服务会导致业务中断,建议相关人员评估风险后,再进行操作)。以Windows环境为例,重启服务的步骤如下:
  • 进入域所在目录下的bin目录,在Windows系统中运行cmd文件终止weblogic服务,Linux系统中则运行stopWebLogic.sh文件。

  • 待终止脚本执行完成后,再运行cmd或startWebLogic.sh文件启动Weblogic,即可完成Weblogic服务重启。

 

声明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。

绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市,股票简称:绿盟科技,股票代码:300369。

Spread the word. Share this post!

Meet The Author

Leave Comment