⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 github.com/alibaba/fastjson/wiki/security_update_20220523 「© Alibaba Fastjson Develop Team」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

近日 Fastjson Develop Team 发现 fastjson 1.2.80及以下存在新的风险,请关注。

1 风险描述

fastjson已使用黑白名单用于防御反序列化漏洞,经研究该利用在特定条件下可绕过默认autoType关闭限制,攻击远程服务器,风险影响较大。

建议fastjson用户尽快采取安全措施保障系统安全。

2 影响版本

特定依赖存在下影响 ≤1.2.80

3 升级方案

3.1升级到最新版本1.2.8

https://github.com/alibaba/fastjson/releases/tag/1.2.83

该版本涉及autotype行为变更,在某些场景会出现不兼容的情况。

3.2 safeMode加固

fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可杜绝反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)。

3.2.1 开启方法

参考:

https://github.com/alibaba/fastjson/wiki/fastjson_safemode

3.2.2 使用1.2.83之后的版本是否需要使用safeMode

1.2.83修复了此次发现的漏洞,开启safeMode是完全关闭autoType功能,避免类似问题再次发生,这可能会有兼容问题,请充分评估对业务影响后开启。

3.2.3 开启了safeMode是否需要升级

开启safeMode不受本次漏洞影响,可以不做升级。

3.3 升级到fastjson v2

fastjson v2 地址:

https://github.com/alibaba/fastjson2/releases

fastjson已经开源2.0版本,在2.0版本中,不再为了兼容提供白名单,提升了安全性。fastjson v2代码已经重写,性能有了很大提升,不完全兼容1.x,升级需要做认真的兼容测试。

3.4 noneautotype版本

在5月26日后,为了方便使用老版本用户兼容安全加固需求,提供了noneautotype版本,效果和1.2.68的safeMode效果一样,完全禁止autotype功能。

使用noneautotype版本的用户也不受此次漏洞影响。

  • https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.8_noneautotype/
  • https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.48_noneautotype/
  • https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.54_noneautotype/
  • https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.60_noneautotype/
  • https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.71_noneautotype/

尽快修复保平安吧!

文章目录
  1. 1. 1 风险描述
  2. 2. 2 影响版本
  3. 3. 3 升级方案