疯了!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 默认关闭 autoTypeSupportAutoType 也已经被废弃并标记了安全风险

修复建议

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

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

fastjson2 也需要注意的是:

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

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

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

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

相关推荐
东风破_4 小时前
从 0 设计一个博客数据库:用户、头像与文章表应该怎么建?
后端·mysql
大鸡腿同学4 小时前
黄仁勋点透的 AI 真相:能实现你知道但做不到的,却实现不了你不知道的
后端
FfHUCisI4 小时前
Go 编译过程全景
开发语言·后端·golang
FfHUCisI4 小时前
Golang 语法分析与 AST:Parser 与 go/ast
开发语言·后端·golang
++==6 小时前
RESTful详解:核心思想、框架、与HTTP的区别,API的设计风格
后端·http·restful
IT_陈寒7 小时前
Vue的响应式更新有时候真的不听话
前端·人工智能·后端
向生8 小时前
Ubuntu Caddy 保姆级完整教程
后端
tntxia8 小时前
Docker权限的问题
后端
明月_清风8 小时前
看完这段关于"全插件化架构"的技术分析后,我整理了一份笔记
前端·后端
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 7 章 AOP 思想与实现 阅读笔记 14
spring boot·笔记·后端