紧接着,没过多久,很多客户发来邮件,要求排查产品中涉及 fastjson 的安全漏洞!
由于公司项目众多,一个一个排查起来真的是麻烦。我只能给大家口头交待,以后禁止使用阿里巴巴 fastjson,使用 gson 或 Jackson 替换!
不是我不喜欢国产开源项目,实属无奈之举。fastjson 光今年就陆续爆出了 3 个漏洞。和漏洞之王,Struts2 真是有的一拼了!
这次 fastjson 的漏洞涉及 <= 1.2.68 的版本。存在远程代码执行漏洞,漏洞被利用可直接获取服务器权限。
Fastjson 是阿里巴巴开源的 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到JavaBean。自发布以来,深受广大程序员喜爱。我们经常把它拿来和其他 JSON 解析框架对比,它以“速度快”著称!但近年来,逐渐被大家所讨厌,参考这篇文章:为什么 FastJson 火不起来,国外人都不使用?。
到今天位置,已经过去 3 天了,1.2.69 版本目前还未见身影!
所以,在漏洞被发现的第一天,我们只能手动的该代码来修复这个 Bug。
根据腾讯安全团队的建议,需要升级到 Fastjson 1.2.68 版本,然后通过配置以下参数开启 SafeMode 来防护攻击。
ParserConfig.getGlobalInstance().setSafeMode(true);
需要注意的是:safeMode 会完全禁用 autotype,无视白名单,请注意评估对业务影响。
实际上,这个漏洞 Jackson 今年 2 月份也出现过。具体漏洞编号为:CVE-2020-8840,但这个漏洞应该是并未引起 Fastjson 的足够重视,以至于在 Fastjson 上也发现了类似的问题。
截止今天发稿前,Fastjson 有 1322 个 issue。和上次文章中的1283 个相比,又增加了不少,这还不算其中被关闭的。
如果大家系统中有采用 Fastjson 的,建议自行检查,赶紧修复起来。官方的 1.2.69 版本,预计在下周会出来。Fastjson 的现状不忍直视,建议有能力的可以提 PR。Jackson 和 Gson 说不定就和昨天文章里所说的 Consul 一样,某天官方突然来个宣布,禁止国内使用 Jackson 和 Gson 就尴尬了,我们会非常的被动的!