Fastjson 远程代码执行漏洞

微信扫一扫,分享到朋友圈

Fastjson 远程代码执行漏洞

漏洞名称:Fastjson 远程代码执行漏洞

威胁等级:高危

影响范围:Fastjson<=1.2.68

漏洞类型:代码执行

利用难度:简单

漏洞分析

1 Fastjson组件介绍

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

2 漏洞描述

根据Fastjson 1.2.69版本中补充的黑名单分析,Fastjson<=1.2.68的版本中,在autoType关闭的情况下仍然可以通过反序列化漏洞在服务器上执行任意代码。

3 漏洞分析

漏洞绕过autoType开关主要是通过expectClass。首先构造一个特殊类,在进行第一次checkAutoType检测时,会从map中获取此接口类,并传入clazz中。

特殊类在获取deserializer对象时需要获取到JavaBeanDeserializer或者TimeDeserializer,以便于后续反序列化时可以触发存在expectClass类的checkAutoType()方法。

特殊类进行反序列化处理,获取后续传入的数据。

第二个@type传入的Java类会在反序列化过程中触发带有expectClass的checkAutoType()方法。

在经过正常的寻类处理后,代码运行到TypeUtils.loadClass()类加载器方法,需要判断autoTypeSupport || jsonType || expectClassFlag为true,才能进入下面的代码块中。虽然autoType开关关闭,但是由于expectClassFlag为true,判断语句仍然为真,clazz可以正常加载。

之后,代码运行到TypeUtils.addMapping()方法位置,此时需要判断expectClass不为null,才能走到下面的代码块中,同时需要保证clazz中的类与expectClass期望类的接口相同,或者是否是其超类或超接口。如果是,则会将clazz中的类添加到map中。

到这里,autoType开关的绕过流程结束,之后的漏洞触发方式和之前Fastjson反序列化漏洞的触发方式类似。

4 漏洞复现

影响范围

目前受影响的Fastjson版本:

Fastjson<=1.2.68

解决方案

1 修复建议

1.官方发布的最新版本可以防御此漏洞,请受影响的用户下载最新版本的Fastjson。

下载链接:https://github.com/alibaba/fastjson/

2 临时修复建议

更新到Fastjson 1.2.68以上的版本,使用safeMode配置,在配置后将会完全禁用autoType。三种SafeMode配置方法如下:

(1) 在代码中配置:

ParserConfig.getGlobalInstance().setSafeMode(true);

(2) 加上JVM启动参数:

-Dfastjson.parser.safeMode=true

(3)配置fastjson.properties文件:

fastjson.parser.safeMode=true

3 深信服解决方案

深信服下一代防火墙 】可轻松防御此漏洞, 建议部署深信服下一代防火墙的用户更新至最新的安全防护规则,可轻松抵御此高危风险。

深信服云盾 】已第一时间从云端自动更新防护规则,云盾用户无需操作,即可轻松、快速防御此高危风险。

深信服安全感知平台 】可检测利用该漏洞的攻击,实时告警,并可联动【深信服下一代防火墙等产品】实现对攻击者ip的封堵。

深信服安全运营服务 】深信服云端安全专家提供7*24小时持续的安全运营服务。在漏洞爆发之初,云端安全专家即对客户的网络环境进行漏洞扫描,保障第一时间检查客户的主机是否存在此漏洞。对存在漏洞的用户,检查并更新了客户防护设备的策略,确保客户防护设备可以防御此漏洞风险。

参考链接

[1].https://github.com/alibaba/fastjson/wiki/security_update_20200601

[2].https://b1ue.cn/archives/348.html

2020/6/4

深信服千里目安全实验室复现该漏洞,并发布漏洞分析文章和深信服解决方案。

点击 阅读原文 ,及时关注并登录深信服智安全Wiki平台,即可轻松查询漏洞的解决方案~

平台该不该管控特朗普?扎克伯格和员工唇枪舌剑90分钟

上一篇

热带风暴克里斯托巴尔本周末将登陆美国

下一篇

你也可能喜欢

Fastjson 远程代码执行漏洞

长按储存图像,分享给朋友