据国家网络与信息安全信息通报中心监测发现,开源Java开发组件Fastjson存在反序列化远程代码执行漏洞。攻击者可利用上述漏洞实施任意文件写入、服务端请求伪造等攻击行为,造成服务器权限被窃取、敏感信息泄漏等严重影响。
据统计,此次事件影响Fastjson 1.2.80及之前所有版本。目前, Fastjson最新版本1.2.83已修复该漏洞。 葡萄城提醒广大开发者:请及时排查梳理受影响情况,在确保安全的前提下修复漏洞、消除隐患,提高网络系统安全防护能力,严防网络攻击事件。
漏洞描述
5月23日,Fastjson官方发布公告,称在1.2.80及以下版本中存在新的反序列化风险,在特定条件下可绕过默认autoType关闭限制,从而反序列化有安全风险的类,攻击者利用该漏洞可实现在目标机器上的远程代码执行。
Fastjson是开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Java Bean。由于具有执行效率高的特点,Fastjson被众多java软件作为组件集成,广泛存在于java应用的服务端代码中。
漏洞详情
- 漏洞名称: Fastjson反序列化远程代码执行漏洞
- 漏洞编号: 暂无
- 漏洞类型: 远程任意代码执行
- 组件名称: Fastjson
- 影响版本: Fastjson ≤ 1.2.80
- 漏洞等级: 严重
修复建议
1、升级到最新版本1.2.83,下载地址:https://github.com/alibaba/fastjson/releases/tag/1.2.83
由于该版本涉及autotype行为变更,在某些场景会出现不兼容的情况,如遇到问题可以到https://github.com/alibaba/fastjson/issues寻求帮助。
2、safeMode加固
Fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可杜绝反序列化Gadgets类变种攻击。
3、升级到Fastjson v2,下载地址: https://github.com/alibaba/fastjson2/releases
Fastjson已经开源2.0版本,在2.0版本中,不再为了兼容提供白名单,提升了安全性。Fastjson v2代码已经重写,性能有了很大提升,不完全兼容1.x,升级需要做认真的兼容测试。升级遇到问题,可以在https://github.com/alibaba/fastjson2/issues寻求帮助。
排查建议
- Maven:排查pom.xml,通过搜索Fastjson确定版本号
- 其他项目通过搜索jar文件确定Fastjson版本号
经过测试,葡萄城产品(Wyn、活字格、SpreadJS 和 GcExcel)并未使用Fastjson JSON库,因此用户无需担心安全问题。
文中提及的资源,请前往Github官网,搜索“Fastjson”获取。
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。