Oracle WebLogic XMLDecoder反序列化漏洞(CVE-2019-2725绕过)预警通告

浏览 : 发布 :2019-06-21

一、漏洞简介

WebLogic Server是美国甲骨文(Oracle)公司开发的一款适用于云环境和传统环境的应用服务中间件,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。

WebLogic中默认包含的wls-wast 与wls9_async_response war包,由于以上WAR包采用XMLDecoder反序列化机制来处理发送过来的XML数据,远程恶意攻击者可以通过发送精心构造的HTTP请求,在未授权的情况下远程执行命令,获得目标服务器的权限。也就是说,攻击者能够直接获取服务器系统权限,进行数据窃取,进而甚至会威胁受害者的内网安全。

目前野外出现Oracle Weblogic反序列化漏洞最新利用代码,并绕过了官方4月底的最新安全补丁(CVE-2019-2725),该漏洞属于0day,官方尚未给出任何补丁。

二、漏洞编号

暂无漏洞编号。

三、影响版本

Oracle WebLogic Server 10.x

Oracle WebLogic Server 12.1.3

此漏洞影响启用bea_wls9_async_response组件及wls-wsat组件的所有Weblogic版本。此次出现的绕过方式出现在低于jdk7的java版本上。

四、检测方法

1.可通过访问路径/_async/AsyncResponseServiceSoap12判断wls9_async_response组件是否存在。若返回如下页面,请引起关注,及时采取防护措施。

cid:image001.jpg@01D52693.680ABD80

2.可通过访问路径/wls-wsat/CoordinatorPortType,判断wls-wsat组件是否存在。若返回如下页面,则此组件存在。请引起关注,及时采取防护措施。

cid:image002.jpg@01D52693.680ABD80

五、临时防护方案

官方暂未发布针对此漏洞的修复补丁,在官方修复之前,可以酌情采取以下方式进行临时防护。

5.1 升级java版本

用户可升级java版本至jdk7及以上,防护此漏洞。

在jdk7下,唯一能创建类的class已经加入了黑名单,所以在jdk7下不受此漏洞影响,这次的绕过出现在低于jdk7的java版本上。

5.2 配置URL访问控制策略

部署于公网的用户,可通过访问控制策略禁止对/_async/*及/wls-wsat/*路径的访问。已购云WAF的用户,建议升级访问控制策略;尚未购置云WAF的用户,建议考虑云WAF产品,提高安全防护能力。

5.3 删除不安全文件

删除wls9_async_response.war、wls-wsat.war文件及相关文件夹,并重启Weblogic服务。具体文件路径如下:

版本号为10.3.*:

    \Middleware\wlserver_10.3\server\lib\
    %DOMAIN_HOME%\servers\AdminServer\tmp\_WL_internal\

    %DOMAIN_HOME%\servers\AdminServer\tmp\.internal\

版本号为12.1.3:

    \Middleware\Oracle_Home\oracle_common\modules\

    %DOMAIN_HOME%\servers\AdminServer\tmp\.internal\

    %DOMAIN_HOME%\servers\AdminServer\tmp\_WL_internal\

注:wls9_async_response.war及wls-wsat.war属于一级应用包,对其进行移除或更名操作可能造成未知的后果,Oracle官方不建议对其进行此类操作。若在直接删除此包的情况下应用出现问题,将无法得到Oracle产品部门的技术支持。请用户进行影响评估,并对此文件进行备份后,再执行此操作。

5.4 禁用bea_wls9_async_response及wls-wsat

用户可通过在weblogic启动参数中禁用bea_wls9_async_response的方式,对此漏洞形成临时防护。

在禁用不安全组件前,需请开发人员确认应用系统是否使用了weblogic提供的异步WebService功能,排查方法请附录章节。如果确认没有使用,可以使用如下方式禁用此功能:

1、 以windows系统为例,在启动文件(%DOMAIN_HOME%\bin\startWeblogic.cmd)中加如下参数:

    set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.skip.async.response=true
         set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.wstx.wsat.deployed=false

2、对应用程序进行严格测试。

3、测试结果没有问题后,重启Weblogic服务,使参数生效。