疯了!Fastjson 又爆出严重安全漏洞,Spring Boot 项目赶紧自查

Fastjson 最近又爆出严重安全漏洞:

github.com/alibaba/fas...

还是严重 等级,Fastjson 这是修不完的漏洞啊。。Fastjson 是阿里巴巴开源的高性能 Java JSON 序列化/反序列化库 ,广泛用于 Java 对象与 JSON 之间的相互转换。Fastjson 1.x 版本已于 2024 年停止维护,当前最新版本为 2.0.64。

这次的问题,主要出在 **Fastjson 的反序列化机制**上。

简单来说,如果项目使用的是默认配置,没有开启 SafeMode ,同时攻击者又能控制传给 Fastjson 的 JSON 数据,就有机会构造一段恶意内容,利用 Fastjson 自己的反序列化逻辑,最终执行任意代码。

比较麻烦的是,这次漏洞和以前不太一样。

以前很多 Fastjson 漏洞都需要依赖某些特定的 gadget 类,所以把这些危险类删掉或者禁掉,还能起到一定的防护作用。

但这次属于 "gadget-free" 的利用方式,也就是说,它不需要依赖这些特定类就能完成攻击。

所以,过去那种靠删除危险类来规避风险的方法,这次基本就不管用了。

受影响版本

条件 说明
fastjson 版本 1.2.68 -- 1.2.83
配置 AutoType OFF + SafeMode OFF(即默认配置)
部署方式 Spring Boot 可执行 fat-jar
JDK 8 / 11 / 17 / 21 均验证
Spring Boot 2.x / 3.x / 4.x 均验证
入口 JSON.parse、JSON.parseObject(String)、JSON.parseObject(String, Class) 均可达

主要影响的是 Spring Boot 可执行 fat-jar 包 部署方式,Spring Boot 项目赶紧自查。。

Fastjson 2.x 默认配置不受影响,fastjson2 从架构层面已经规避了这次漏洞。

Fastjson 2.x 不再通过用户可控的类名进行资源探测,也不会因为 @JSONType 注解绕过类型校验。同时,类型解析采用白名单优先机制,只有明确允许的类型才能通过。

另外,fastjson2 默认关闭 autoType ,SupportAutoType 也已经被废弃并标记了安全风险。

修复建议

对于 Fastjson 1.x ,建议优先升级到 1.2.84 ,如果暂时无法升级,也可以启用 SafeMode ,或者切换到 noneautotype 版本。

长期来看,更推荐直接迁移到 fastjson2 ,fastjson2 从架构层面已经规避了这次漏洞,而且默认配置更安全。

但 fastjson2 也需要注意的是:

  • 不要显式开启已经废弃的 SupportAutoType;
  • 如果确实需要 autoType,使用 ContextAutoTypeBeforeHandler 配置严格白名单。

所以,Fastjson 1.x 能升级就升级到 1.2.84,最好迁移 fastjson2,fastjson2 默认不受此次漏洞影响。

庆幸,Spring Boot 默认使用 Jackson 作为 JSON 序列化和反序列化框架,并不依赖 Fastjson,我个人也没有使用 Fastjson,不然会修不完的漏洞。

如果你们 Spring Boot 项目用到了 Fastjson,赶紧自查升级吧。

相关推荐
高频因子挖掘机9 分钟前
量化选股到底要不要每天拉全市场股票?从全市场扫描到候选池的行情数据设计
后端·github·api
专业程序开发源18 分钟前
springboot校园志愿者管理系统28562-计算机课程设计、毕业设计
java·spring boot·后端·python·django·php·课程设计
谢亮_vipxieliang23 分钟前
Go select 多路复用:从语法到实战的完整指南
开发语言·后端·golang
高频因子挖掘机29 分钟前
复权价格怎么算?从除权因子、时间方向到量化回测避坑
后端·github·api
mldong37 分钟前
一条审批流的数据库账:5 张核心表、3 张扩展表、0 张表单表
后端·架构
To_OC10 小时前
从一头雾水到跑通全流程:我用一个周末啃透了JWT登录鉴权
前端·后端·http
前端兰博11 小时前
05-Redis
redis·后端
databook12 小时前
从手动检查到自动监控:一个数据质量工作流的实现
后端·python·数据分析
【JAVA】玩家12 小时前
Spring核心原理全解析:从零到生产实战
java·后端·spring
东风破_12 小时前
从 Neo4j 到 GraphRAG:用 Text-to-Cypher 构建图检索 RAG
人工智能·后端