点击箭头处“蓝色字”,关注我们哦!!
尊敬的客户:
近日,知名Java JSON组件FastJson被发现存在远程代码执行漏洞,据了解,该漏洞已在2018年10月完成修复。目前,漏洞利用方式被公开且该组件使用量巨大。
奇安信安全监测与响应中心将持续关注该漏洞进展,并第一时间为您更新该漏洞信息。
文档信息
文档名称 |
FastJson 远程代码执行漏洞安全预警通告 |
关键字 |
FastJson、远程代码执行 |
发布日期 |
2019年07月11日 |
分析团队 |
奇安信代码卫士、奇安信安全监测与响应中心 |
漏洞描述
近日,知名Java JSON组件FastJson被发现存在远程代码执行漏洞,攻击者可以通过提交精心构造的JSON数据实现远程代码执行;经过分析发现该利用方式只影响FastJson 1.2.48 版本以下。
风险等级
奇安信安全监测与响应中心风险评级为:高危
预警等级:蓝色预警(一般事件)
影响范围
FastJson < 1.2.48
处置建议
FastJson 升级到1.2.51
FastJson 升级到1.2.58
技术分析
经过深入分析发现,该漏洞利用方式通过使用@type指定java.lang.Class绕过autoType机制并且将JndiDataSourceFactory注入到mappings,虽然FastJson在1.2.46版本就已经将JndiDataSourceFactory加入黑名单,但是代码执行流程在进入checkAutoType后,在黑名单检测流程前就提前返回了class对象,所以不用考虑黑名单机制。
FastJson的DefaultJSONParser是FastJson的默认JSON解析器,该解析器使用假定有序快速匹配算法对JSON数据进行解析,当解析到@type,并且@type不为空会调用checkAutoType进行安全检查;由于FastJson在设计的时候就考虑到性能,所以FastJson使用ASM直接生成对象而不是用反射。
所以在MiscCodec的责任链中,java.lang.Class拥有类加载的能力。
在FastJson 1.2.47的TypeUtils中,由于loadClass的cache参数默认为True,导致JndiDataSourceFactory被注入到mappings,从而引发了代码执行。
在FastJson 1.2.48中,TypeUtils的cache参数被修改为false,所以无法使用java.lang.Class将恶意链再注入到mappings中。
由于使用java.lang.Class成功将恶意链注入到mappings,所以在ParserConfig中成功的从deserializers获取typeName导致clazz不为空,绕过了autoType。
最终这个精妙的代码执行路径实现了任意代码执行。
产品线解决方案
奇安信天眼新一代威胁感知系统产品检测方案:
奇安信天眼新一代威胁感知系统已经可以检测Fastjson反序列化漏洞攻击,规则名称为:Fastjson反序列化漏洞攻击,规则编号为:0x100205B5。建议用户升级至3.0.0622.11165或以上版本。
奇安信网站应用安全云防护系统已更新防护特征库:
奇安信网神网站应用安全云防护系统已全局更新所有云端防护节点的防护规则,支持对FastJson远程代码执行漏洞的防护。
奇安信网神天堤防火墙产品防护方案:
奇安信新一代智慧防火墙(NSG3000/5000/7000/9000系列)和下一代极速防火墙(NSG3500/5500/7500/9500系列)产品系列,已通过更新IPS特征库完成了对该漏洞的防护。建议用户尽快将IPS特征库升级至最新的特征库“ 1907111800”及以上版本并启用规则ID: 5262进行检测。
奇安信网神网络数据传感器系统产品检测方案:
奇安信网神网络数据传感器(NDS3000/5000/9000系列)产品,已具备该漏洞/木马的检测能力。规则ID为:5262,建议用户尽快升级检测规则库1907111800并启用该检测规则。
360网神虚拟化安全管理平台已更新入侵防护规则库:
360 网神虚拟化安全管理平台无代理版本可通过更新入侵防御规则库到10157版本,支持对fastjson远程代码执行漏洞的防护,请用户联系技术支持人员获取规则升级包对虚拟化产品无代理版本进行升级。
云监测处置方案:
奇安信云监测系统已经可以检测Fastjson反序列化漏洞攻击,规则名称为:Fastjson反序列化漏洞攻击,规则编号为:fastjson_xml。建议用户使用云监测对网站进行防护
时间线
[1]. 2019年7月11日,奇安信安全监测与响应中心发布预警通告