1、漏洞公告
2020年6月1日,Fastjson官方发布autoType开关绕过安全漏洞和补全autoType黑名单的漏洞修复版本:1.2.69、1.2.70版本,相关链接参考:
https://github.com/alibaba/fastjson/wiki/security_update_20200601
根据更新记录,漏洞主要为autoType开关绕过的反序列化漏洞利用,恶意攻击者可以通过该漏洞绕过autoType限制实现远程代码执行攻击,从而获取目标系统管理权限,建议尽快更新漏洞修复版本或采用临时缓解措施加固系统。
2、影响范围
Fastjson <=1.2.68版本存在漏洞,建议更新到漏洞修复后的1.2.70以上版本;
fastjson sec版本 <= sec9,建议更新到sec10以上版本;
android版本不受此漏洞影响;
GitHub更新版本地址:
https://github.com/alibaba/fastjson/releases
3、漏洞描述
在Fastjson<=1.2.68的版本中,通过新的Gadgets链绕过autoType开关,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,实现了反序列化漏洞利用的远程代码执行效果,同时,此次修复补丁也补充了autoType黑名单,Fastjson历史版本中,autoType安全黑名单已被多次绕过,官方也一直在持续补充增强该黑名单,并在1.2.68版本中引入一个safeMode的配置,配置safeMode后,无论白名单和黑名单,都不支持autoType,不过默认并未开启该配置。由于autoType开关漏洞利用门槛较低,可绕过autoType限制,风险影响较大,建议尽快更新漏洞修复版本或采用临时缓解措施加固系统。
4、缓解措施
紧急:目前虽然漏洞细节和利用代码暂未公开,但可以通过更新版本的补丁对比定位漏洞触发点并快速开发出漏洞利用代码,建议尽快更新漏洞修复版本或采用临时缓解措施加固系统。
临时缓解措施(打开SafeMode功能,请评估对业务运行的影响):
首先更新到1.2.68版本,然后进行safeMode的配置,在配置后将会完全禁用autoType;
1. 在代码中配置:
ParserConfig.getGlobalInstance().setSafeMode(true);
2. 加上JVM启动参数:
-Dfastjson.parser.safeMode=true
3. 配置fastjson.properties文件:
fastjson.parser.safeMode=true
参考链接:
https://github.com/alibaba/fastjson/wiki/fastjson_safemode
https://github.com/alibaba/fastjson/wiki/security_update_20200601