疯了!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,赶紧自查升级吧。

相关推荐
高级程序源12 分钟前
django校企合作实习基地管理系统82506-计算机课程设计、毕业设计
vue.js·后端·python·mysql·django·课程设计·pygame
盖伦发发33 分钟前
Redis 核心教学: 数据结构, 缓存设计, 分布式锁
java·redis·后端·软件工程
卷毛的技术笔记35 分钟前
RocketMQ事务消息:我把分布式事务这层窗户纸捅破了
java·分布式·后端·java-rocketmq
铁皮饭盒1 小时前
网页端, 40mb离线模型, 自动抠图, 不用 Python,不用服务器,不用 API Key, 不用显卡
前端·javascript·后端
IT_陈寒1 小时前
Redis并发写入踩坑记录:别让超时设置坑了你
前端·人工智能·后端
Bs_MoneyMagnet1 小时前
基于springboot+vue的图书馆预约系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·毕业设计·图书管理系统·计算机毕业设计
console.log('npc')1 小时前
03 — 核心框架:App 与中间件
后端·node.js·express
小蒜学长1 小时前
基于小程序的绘画作品创作与分享社区系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·绘画作品·创作分享社区
江湖十年1 小时前
Go GOPROXY 兜底链的坑:从一次诡异的 CI lint 失败说起
后端·面试·go
考虑考虑9 小时前
docker compose V2版本新属性
运维·后端·自动化运维