漏洞描述
FastJSON是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。由于具有执行效率高的特点,应用范围广泛。有消息称FastJSON <= 1.2.68 存在远程代码执行漏洞,可直接获取到服务器权限。漏洞成因是Fastjson autotype开关的限制可被绕过,然后链式地反序列化某些原本不能被反序列化的有安全风险的类。
漏洞概述
CVE编号:无
漏洞类型:远程代码执行
危险等级:高危
受影响版本
FastJSON <= 1.2.68
修复建议
官方暂未发布针对此漏洞的修复版本(预计1号发布更新),升级版本到 1.2.69 版本
2020年06月01日更新,官方发布1.2.69,并且发布1.2.70(1.2.69的稳定版)
官网下载链接:https://github.com/alibaba/fastjson/releases
如果遇到兼容问题,原地升级sec10版本
- 1.1.15~1.1.31 -> 1.1.31.sec10
- 1.1.32~1.1.33 -> 1.1.33.sec10
- 1.1.34 -> 1.1.34.sec10
- 1.1.35~1.1.46 -> 1.1.46.sec10
- 1.2.0~1.2.2 -> 1.2.2.sec10 因为1.2.3之后的版本Map是没有排序输出的,如果不关注这个兼容问题,升级到1.2.70
- 1.2.3~1.2.7 -> 1.2.7.sec10 因为1.2.7使用最多特别提供,也可以直接使用1.2.8.sec10
- 1.2.8 -> 1.2.8.sec10
- 1.2.9~1.2.29 -> 1.2.29.sec10
- 1.2.30~1.2.48 -> 1.2.48.sec10
- 1.2.49~1.2.68 -> 1.2.69或1.2.70 中间有很多sec10小版本,建议直接升级到1.2.69或1.2.70,如果遇到兼容再考虑sec10版本
如果还遇到其他兼容问题,这里有更多的sec10版本 https://repo1.maven.org/maven2/com/alibaba/fastjson/
缓解措施
在1.2.68之后的版本,在1.2.68版本中,fastjson增加了safeMode的支持。safeMode打开后,完全禁用autoType。所有的安全修复版本sec10也支持SafeMode配置。
由于autotype开关的限制可被绕过,请受影响用户升级到FastJSON 1.2.68版本,通过开启safeMode配置完全禁用autoType。三种配置SafeMode的方式如下:
- 在代码中配置: ParserConfig.getGlobalInstance().setSafeMode(true);
- 加上JVM启动参数: -Dfastjson.parser.safeMode=true (如果有多个包名前缀,可用逗号隔开)
- 通过类路径的fastjson.properties文件来配置: fastjson.parser.safeMode=true
官方公告
https://github.com/alibaba/fastjson/wiki/security_update_20200601
官方配置safeMode
https://github.com/alibaba/fastjson/wiki/fastjson_safemode
这个好像好多公司都在用。。
是的,这个漏洞影响范围非常大,而且是代码执行的,建议尽快升级。