2026 年 7 月 21 日,多个 Fastjson 项目相关安全公告指出:Fastjson 1.2.68 至 1.2.83 存在一条远程代码执行风险。截至本文发布时,该漏洞尚未获得公开编号,因此本文不使用未经确认的 CVE 标识,也不对漏洞归属作超出公告范围的推断。
AVL Code 团队成员已沿公开线索开展分析,并在隔离环境中完成多个 PoC,对漏洞的触发条件和可达性进行了交叉验证。PoC 证明风险在特定条件下成立,但不意味着所有使用受影响版本的系统均可被直接利用。
安天已于 2026 年 7 月 21 日零时将 PoC 代码上报主管部门,供支撑研判工作。本文不提供 PoC、攻击载荷、利用流程及其他技术细节。
这次事件再次说明:项目停止维护,不等于软件退出生产环境;仓库可以归档,风险不会随之归档。
一、风险概览
根据 Fastjson 项目发布的安全公告,当前已知信息如下:
| 项目 | 已知情况 |
|---|---|
| 受影响版本 | Fastjson 1.2.68—1.2.83 |
| 主要环境 | Spring Boot 可执行 Fat JAR |
| 已验证组合 | Spring Boot 2、3、4;JDK 8、11、17、21 |
| 关键配置 | AutoType 关闭但 SafeMode 未开启时仍可能受影响 |
| 影响 | 在满足特定条件时可能导致远程代码执行 |
| Fastjson2 | 公告说明所有 Fastjson2 版本不受影响 |
| 漏洞编号 | 截至 2026 年 7 月 21 日尚未公开 |
上述环境是公告已经验证的范围,不应被理解为漏洞影响面的完整边界。实际风险仍取决于应用是否使用受影响版本、外部输入能否到达相关解析入口,以及部署和类加载条件是否成立。
二、研判边界
公开公告表明,关闭 AutoType 并不能排除本次风险;是否受影响还与 SafeMode、应用打包方式和运行环境有关。因此,不能仅凭单项配置或接口形式作出安全判断。
AVL Code 团队已通过多个 PoC 完成内部验证。鉴于相关材料已经上报主管部门,本文不讨论触发路径、载荷、复现方法及其他漏洞技术细节。本文所列信息仅用于风险识别和防御处置。
三、如何确认自身是否受影响
排查应围绕“版本、入口、数据、环境、配置”建立证据链。
- 确认依赖版本:检查直接依赖、传递依赖、打包产物及二次封装组件,确认是否包含 Fastjson 1.2.68—1.2.83。升级到 1.2.83 不能规避此次风险,因为它也在受影响范围内。
- 梳理使用范围:确认哪些服务处理外部或跨信任边界的数据,并建立组件、应用和责任人的对应关系。
- 确认部署方式:判断应用是否以 Spring Boot 可执行 Fat JAR 运行,并记录 Spring Boot 与 JDK 版本。
- 检查安全配置:不要只确认 AutoType 已关闭,还要验证 SafeMode 是否在实际运行进程中生效。
- 持续监测更新:关注官方公告、主管部门通报和内部监测结果,及时调整处置范围。
验证工作应在隔离环境中进行。生产系统排查以版本、配置、调用链和运行证据为主,不应直接投放未经审查的验证载荷。
四、处置建议
处置优先级如下:
- 立即启用 SafeMode,并通过启动参数、运行日志或受控测试确认配置已经生效。常见方式包括 JVM 参数
-Dfastjson.parser.safeMode=true,也可在应用初始化阶段调用相应配置接口。 - 无法立即迁移时,评估 noneautotype 版本,同时完成兼容性和回归测试。该措施不能替代资产梳理与调用链审计。
- 限制不可信输入,收紧相关接口、消息来源和反序列化数据边界,降低外部输入到达解析入口的可能性。
- 迁移至 Fastjson2 或其他仍在维护的方案。Fastjson 1.x 已归档,临时缓解不能代替长期迁移。
- 持续关注官方公告,在漏洞编号、补丁或影响范围更新后,及时修订内部通告和检测策略。
五、AI 与 Coding Agent 能做什么
面对已经停止维护但仍被广泛使用的组件,难点往往不只是理解一段漏洞代码,而是在大型工程中快速建立可信的影响证据。AI 与 Coding Agent 可以承担高重复、可验证的分析工作:
| 工作 | 可交付证据 |
|---|---|
| 扫描依赖与构建产物 | 受影响组件、版本、引入路径 |
| 检索解析入口与数据流 | 外部输入到危险调用的路径 |
| 比对版本与安全公告 | 影响条件、差异点、待确认假设 |
| 检查配置和部署方式 | SafeMode、Fat JAR、JDK 等环境证据 |
| 生成并执行回归测试 | 缓解措施生效及业务兼容性结果 |
本次分析中,AVL Code 团队成员沿公开线索持续追踪代码路径,并完成了多个 PoC。Coding Agent 可辅助版本比对、调用链追踪、环境检查和测试编排,但其输出只能作为分析候选,不能替代安全结论。每项判断都应回到源码、构建产物、运行配置和测试结果;高风险验证、生产变更与漏洞披露仍需人工授权和复核。
多个 PoC 用于排除偶然因素、校验不同条件并形成可复核的证据链。相关材料已按前述方式上报;基于负责任披露原则,本文不提供任何相关技术细节。
六、致敬:旧代码仍需有人守护
技术不断演进,但旧系统不会随项目归档而立即退出生产环境。PDP-11、Apple II、中华学习机、Sun 工作站和 DOS 已成为计算机历史的一部分;Fastjson 1.x 虽已停止维护,仍运行在许多现实系统中。
发现问题、核实影响、推动修复,是安全研究者和软件维护者对技术历史最务实的致敬:旧技术可以进入展厅,仍在运行的旧代码必须有人负责。
《时空机房》由安天 AVL Code 团队敬制。
参考资料
- Security Advisory: Remote Code Execution in fastjson 1.2.68–1.2.83
- Fastjson 1.x 项目仓库
- Fastjson2 项目仓库
- 《时空机房》
AVL Code,AVL 安全引擎,与智能随行。安天澜砥团队出品。
