微慑信息网

【漏洞预警】FastJson远程代码执行漏洞安全预警通告


尊敬的客户:

近日,知名Java JSON组件FastJson被发现存在远程代码执行漏洞,据了解,该漏洞已在201810月完成修复。目前,漏洞利用方式被公开且该组件使用量巨大。

 

奇安信安全监测与响应中心将持续关注该漏洞进展,并第一时间为您更新该漏洞信息。

 

文档信息

文档名称 FastJson 远程代码执行漏洞安全预警通告
关键字 FastJson、远程代码执行
发布日期 20190711
分析团队 奇安信代码卫士、奇安信安全监测与响应中心

漏洞描述

 

近日,知名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,虽然FastJson1.2.46版本就已经将JndiDataSourceFactory加入黑名单,但是代码执行流程在进入checkAutoType后,在黑名单检测流程前就提前返回了class对象,所以不用考虑黑名单机制。

FastJsonDefaultJSONParserFastJson的默认JSON解析器,该解析器使用假定有序快速匹配算法对JSON数据进行解析,当解析到@type,并且@type不为空会调用checkAutoType进行安全检查;由于FastJson在设计的时候就考虑到性能,所以FastJson使用ASM直接生成对象而不是用反射。

所以在MiscCodec的责任链中,java.lang.Class拥有类加载的能力。

【漏洞预警】FastJson远程代码执行漏洞安全预警通告

FastJson 1.2.47TypeUtils中,由于loadClasscache参数默认为True,导致JndiDataSourceFactory被注入到mappings,从而引发了代码执行。

【漏洞预警】FastJson远程代码执行漏洞安全预警通告

FastJson 1.2.48中,TypeUtilscache参数被修改为false,所以无法使用java.lang.Class将恶意链再注入到mappings中。

【漏洞预警】FastJson远程代码执行漏洞安全预警通告

由于使用java.lang.Class成功将恶意链注入到mappings,所以在ParserConfig中成功的从deserializers获取typeName导致clazz不为空,绕过了autoType

【漏洞预警】FastJson远程代码执行漏洞安全预警通告

【漏洞预警】FastJson远程代码执行漏洞安全预警通告

最终这个精妙的代码执行路径实现了任意代码执行。

【漏洞预警】FastJson远程代码执行漏洞安全预警通告

原文始发于微信公众号(奇安信 CERT):【漏洞预警】FastJson远程代码执行漏洞安全预警通告

本文标题:【漏洞预警】FastJson远程代码执行漏洞安全预警通告
本文链接:
(转载请附上本文链接)
http://vulsee.com/archives/vulsee_2019/0711_8171.html
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » 【漏洞预警】FastJson远程代码执行漏洞安全预警通告
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

微慑信息网 专注工匠精神

访问我们联系我们