漏洞概述
7 月 27 日,长亭科技安全应急响应中心披露 Fastjson2 远程代码执行漏洞。攻击者可通过构造恶意 JSON 数据绕过 AutoType 类型校验,在目标服务器上执行任意代码。漏洞影响 Fastjson2 2.0.62 及以前全部已发布版本,即截至披露时所有版本均受影响。
Fastjson2 是阿里巴巴开源的 Java JSON 解析库,在国内 Java 生态中占据主导地位,广泛应用于企业后端服务、微服务网关、数据接口层等核心场景。
漏洞技术特征
| 维度 | 详情 |
|---|---|
| 漏洞类型 | 远程代码执行(RCE) |
| 危害等级 | 高 |
| 触发方式 | 网络远程 |
| 权限认证 | 无需权限 |
| 系统配置 | 默认配置即可利用 |
| 用户交互 | 无需用户交互 |
| 利用成熟度 | POC 未公开 |
| 影响版本 | Fastjson2 ≤ 2.0.62(全部已发布版本) |
官方回应:所有已发布版本均无修复
项目维护者 wenshao 在 GitHub Issue #7702 中确认了以下信息:
问题确认:fastjson2 的 AutoType 类型解析路径确实存在安全问题,在特定条件下可能被利用,团队已在跟进修复。
关于 PR #7695:社区讨论中提到的 PR #7695 并非已合并的正式修复。该 PR 已关闭且未合并进主干,当前所有已发布版本均不包含修复。正式修复将通过独立 PR 合并并随后续版本发布。
修复时间线:修复正在进行中,会尽快合并并随下一个版本发布。Issue #4034 中报告的 2.0.61 大 JSON 报错问题也已记录,会在发版前一并评估。

长亭科技公告中标注"修复复杂度:低,官方已发布修复补丁",并引用了 PR #7695 作为修复方案。但 wenshao 明确表示该 PR 已关闭未合并,所有已发布版本无正式补丁。修复版会在近期随新版本发布,请以官方 release 为准。
临时缓解方案
修复版本发布前,官方建议开启 SafeMode 完全禁用 AutoType。SafeMode 在类加载时读取(static final),属于启动期配置,需在应用启动前设置,运行时动态设置无效。
方式一:JVM 启动参数(推荐)
java -Dfastjson2.parser.safeMode=true -jar app.jar兼容旧属性名 -Dfastjson.parser.safeMode=true(fastjson 1.x 风格)。
方式二:classpath 配置文件
在 classpath 根目录(如 Spring Boot 的 src/main/resources/)新建 fastjson2.properties:
fastjson2.parser.safeMode=true方式三:环境变量(容器 / 云平台)
JAVA_TOOL_OPTIONS=-Dfastjson2.parser.safeMode=true常见部署场景配置
Tomcat(bin/setenv.sh,没有则新建):
export CATALINA_OPTS="$CATALINA_OPTS -Dfastjson2.parser.safeMode=true"Spring Boot:
推荐使用 JVM 启动参数或 fastjson2.properties。写在 application.properties 或 application.yml 里不会生效。Spring 配置不会自动转为 JVM 系统属性,fastjson2 也不读取 Spring 配置。
Docker / Kubernetes:
ENV JAVA_TOOL_OPTIONS="-Dfastjson2.parser.safeMode=true"SafeMode 注意事项
- 开启后 autoType 被完全禁用,
@type不再触发任何类加载,从根本上规避该问题 - 如果业务确实依赖 autoType 反序列化(默认配置下通常不依赖),需评估改为显式指定目标类型
- 有用户反馈开启 SafeMode 后报
safeMode not support autoType错误,说明业务代码中存在 autoType 调用,需排查代码
本月第二个:fastjson 1.x 同样沦陷
这是 fastjson 生态本月第二个严重漏洞。7 月 19 日,安全研究员 Kirill Firsov(FearsOff Cybersecurity)披露 fastjson 1.x 最后一版 1.2.83 自身存在无 gadget RCE:无需 autoType、无需 classpath gadget,JDK 8/17/21 全可复现。
fastjson 1.x 仓库已于 2024 年 10 月 23 日归档(read-only),官方大概率不会推送安全补丁。
这意味着,无论使用 fastjson 1.x 还是 2.x,当前都面临未修复的远程代码执行风险:
- 1.x 用户:升级到 fastjson2(API 不完全兼容,需测试)或切换到 Jackson
- 2.x 用户:立即开启 SafeMode,等待官方修复版本发布
社区反应
GitHub Issue #7702 下讨论活跃。有用户反映大面积受到影响,询问修复版本时间节点。有开发者建议 fastjson2 出一个 noneautotype 版本彻底杜绝该问题。也有用户直言"还是用 Jackson 吧,这三天两头搞这种"。
wenshao 对社区的情绪表示理解,承认反复收到安全告警对团队是实实在在的负担和信任消耗,同时表示选用 Jackson 是完全正当的工程决策。