【技术分析】Jackson-databind远程代码执行(CVE-2019-12384)

危害等级高,攻击者利用此漏洞可实现远程代码执行,目前PoC已公开。

漏洞概述

6月21日,Redhat官方发布jackson-databind漏洞(CVE-2019-12384)安全通告,多个Redhat产品受此漏洞影响,CVSS评分为8.1,漏洞利用复杂度高。7月22日,安全研究员Andrea Brancaleoni对此漏洞进行分析,并公布了该漏洞的分析文章。

该漏洞是由于Jackson黑名单过滤不完整而导致,当开发人员在应用程序中通过ObjectMapper对象调用enableDefaultTyping方法时,程序就会受到此漏洞的影响,攻击者就可利用构造的包含有恶意代码的json数据包对应用进行攻击,直接获取服务器控制权限。

目前针对该漏洞利用的POC已经公开,请受影响的用户及时更新版本进行修复,漏洞利用成功的截图如下:

参考链接:

https://blog.doyensec.com/2019/07/22/jackson-gadgets.html

 

影响范围

受影响版本

  • Jackson-databind 2.X < 2.9.9.1

不受影响版本

  • Jackson-databind 2.9.9.1
  • Jackson-databind 2.10

 

漏洞检测

当应用程序中引入Jackson组件,通过ObjectMapper对象调用enableDefaultTyping方法时,程序就会受到此漏洞的影响。建议开发人员排查Jackson-databind组件的引入情况,包括是否引入以及版本详情,并且排查代码中是否调用了enableDefaultTyping方法。以Maven项目为例,排查方法如下所示:

1.检查xml相关文件对jackson-databind引入情况,判断当前版本是否低于2.9.9.1版本。

2.当引入了jackson-databind组件时,排查代码中是否调用了enableDefaultTyping方法,如果调用了,建议立即升级相关组件并重启Web应用。

 

漏洞防护

官方升级

官方已经在2.9.9.1版本中修复该漏洞,请用户尽快升级至2.9.9.1及以上版本进行防护。

下载链接:https://github.com/FasterXML/jackson-databind/releases

开发人员也可通过配置Maven的方式对应用升级并编译发布,配置方法如下:

另外,Jackson-dababind的最新主要版本(3.x)将使用新的API,该API layer可以提供一种基于白名单的序列化方式来处理多态类(polymorph classes),以此解决该系列漏洞。

 

声明

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

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

 

关于绿盟科技

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

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

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

发表评论