Jackson-databind在2018年初又被爆出了一个远程代码执行漏(CVE-2017-17485),受影响的版本有:2.9.3、2.7.9.1、2.8.10及之前的版本。该漏洞是由于Jackson黑名单过滤不完整,当开发人员在应用程序中通过ObjectMapper对象调用enableDefaultTyping方法时,程序就会受到此漏洞的影响,攻击者就可利用构造的包含有恶意代码的json数据包对应用进行攻击,直接获取服务器控制权限。目前针对该漏洞利用的POC已经公开,请受影响的用户及时更新版本进行修复。
CVE-2017-17485 漏洞范围
受影响的版本
Jackson-databind version <= 2.9.3
Jackson-databind version <= 2.7.9.1
Jackson-databind version <= 2.8.10
不受影响的版本
Jackson-databind version 2.9.3.1
Jackson-databind version 2.7.9.2
Jackson-databind version 2.8.11
CVE-2017-17485 漏洞检测方法
当应用程序中引入Jackson组件,通过ObjectMapper对象调用enableDefaultTyping方法时,程序就会受到此漏洞的影响。建议开发人员排查Jackson-databind组件的引入情况,包括是否引入以及版本详情,并且排查代码中是否调用了enableDefaultTyping方法。以Maven项目为例,排查方法如下所示:
当应用程序中引入Jackson组件,通过ObjectMapper对象调用enableDefaultTyping方法时,程序就会受到此漏洞的影响。建议开发人员排查Jackson-databind组件的引入情况,包括是否引入以及版本详情,并且排查代码中是否调用了enableDefaultTyping方法。以Maven项目为例,排查方法如下所示:
1.检查pom.xml相关文件对jackson-databind引入情况,判断当前版本是否低于2.9.3版本。 2.当引入了jackson-databind组件时,排查代码中是否调用了enableDefaultTyping方法,如果调用了,建议立即升级相关组件并重启Web应用。
CVE-2017-17485 防护方案
(1)官方补丁
官方将在新版本中通过扩展黑名单的方式来修复该漏洞,受影响的用户请尽快升级到新版本进行防护。
另外,Jackson-dababind的最新主要版本(3.x)将使用新的API,该API layer可以提供一种基于白名单的序列化方式来处理多态类(polymorph classes),以此解决该系列漏洞。
(2)产品防护
- 自定义规则
为及时形成对Jackson远程代码执行漏洞的防护能力,减少因此漏洞导致的损失,部署有绿盟科技WAF的用户在官方正式提供防护规则前,可通过自定义规则的方式用来及时防护该漏洞,自定义规则如下:
(uri * rco .*org\.springframework\.context\.support\.FileSystemXmlApplicationContext.*) |
请参考如下步骤对临时规则进行部署:
a. 新建自定义规则,依次点击“安全管理”-“规则库管理”-“自定义”-“新建”
b. 将自定义规则命名为“Jackson-17485”。
c.依次按照如下截图进行设置:
检测对象:Request-body
匹配操作:正则包含
检测值:.*org\.springframework\.context\.support\.FileSystemXmlApplicationContext.
配置完成后可以看到如下约束条件:
d. 新建自定义策略,依次点击“安全管理”-“策略管理”-“自定义策略”-“新建”。
设置策略名称为“jackson-17485策略”,勾选刚刚新建的“jackson-17485”规则后点击确定。
e. 在站点添加自定义策略,依次点击“安全管理”-“站点防护”-“根据需要选择需要防护的站点”-“Web安全防护”。
在自定义策略中勾选刚刚创建的“jackson-17485策略”后,点击确定即可启用自定义的规则进行防护。
防护效果如下,可以看到,对于此POC的攻击已经进行了有效的阻断:
声明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。
绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
关于绿盟科技
北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。
基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。
北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。