漏洞概述
2020年1月15日,Oracle官方发布了2020年1月关键补丁更新公告,修复了334个不同程度的漏洞。其中包括一个Oracle Coherence反序列化远程代码执行漏洞(CVE-2020-2555),CVSS评分为9.8;该漏洞允许未经身份验证的攻击者通过构造T3网络协议请求进行攻击,成功利用该漏洞可实现在目标主机上执行任意代码。使用了Oracle Coherence库的产品受此漏洞影响,在WebLogicServer 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 & WebLogic 12.1.3.0.0(WebLogic12C后,WebLogic和Coherence共享版本)
Oracle Coherence & WebLogic 12.2.1.3.0(WebLogic12C后,WebLogic和Coherence共享版本)
Oracle Coherence & WebLogic 12.2.1.4.0(WebLogic12C后,WebLogic和Coherence共享版本)
漏洞处置建议
1、建议使用安装补丁的方式彻底解决漏洞,不推荐临时解决的方案。2、为防止补丁安装后出现异常,建议修复前做好备份工作。方式一:安装补丁Oracle官方补丁需要用户持有正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。
参考:https://www.oracle.com/security-alerts/cpujan2020.html
方式二:临时解决方案
若暂时无法安装修复补丁,且不依赖T3协议进行JVM通信, 可通过控制T3协议的访问来临时阻断针对利用T3协议漏洞的攻击。Weblogic Server 提供了名为weblogic.security.net.ConnectionFilterImpl 的默认连接筛选器,此连接筛选器接受所有传入连接,可通过此连接筛选器配置规则,对t3及t3s协议进行访问控制,详细操作步骤如下:
1. 进入Weblogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置。
2. 在连接筛选器中输入:weblogic.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,其中: · target 指定一个或多个要筛选的服务器。 · localAddress 可定义服务器的主机地址。(如果指定为一个星号 (*),则返回的匹配结果将是所有本地 IP 地址。) · localPort 定义服务器正在监听的端口。(如果指定了星号,则匹配返回的结果将是服务器上所有可用的端口)。 · action 指定要执行的操作。(值必须为“allow”或“deny”。) · protocols 是要进行匹配的协议名列表。(必须指定下列其中一个协议:http、https、t3、t3s、giop、giops、dcom 或 ftp。) 如果未定义协议,则所有协议都将与一个规则匹配。 |
3. 保存后若规则未生效,建议重新启动Weblogic服务(重启Weblogic服务会导致业务中断,建议相关人员评估风险后,再进行操作)。以Windows环境为例,重启服务的步骤如下:
· 进入域所在目录下的bin目录,在Windows系统中运行stopWebLogic.cmd文件终止weblogic服务,Linux系统中则运行stopWebLogic.sh文件。
· 待终止脚本执行完成后,再运行startWebLogic.cmd或startWebLogic.sh文件启动Weblogic,即可完成Weblogic服务重启。