Fastjson 2.x远程代码执行漏洞通告
内容提要
绿盟科技通告,Fastjson2.x存在远程代码执行漏洞。即使默认未启用SupportAutoType,攻击者仍可通过内置白名单处理@type,构造恶意JSON实现远程代码执行,CVSS评分9.8。影响版本为2.0.62及以下。官方已发布补丁,建议尽快升级;无法升级可开启SafeMode或使用WAF拦截含@type的请求。
延伸解读
漏洞机制:默认配置下的风险
Fastjson 2.x 在默认未启用 SupportAutoType 时,仍可能通过内置白名单处理 @type 字段。攻击者无需目标服务存在第三方危险类,即可构造恶意 JSON 实现远程代码执行。这打破了“未开启 autoType 即安全”的常见认知,提醒开发者默认配置也可能存在风险。
影响范围与版本确认
受影响版本为 Fastjson 2.x 2.0.62 及以下。用户可通过 lsof 命令或检查项目依赖中的 fastjson 版本文件来确认。若版本在受影响范围内且未开启 SafeMode,则存在安全风险。及时排查版本是防护的第一步。
缓解措施:升级与临时防护
官方已发布补丁,建议尽快升级至安全版本。若无法立即升级,可开启 SafeMode 完全禁用 autoType,或使用 WAF 拦截请求体中包含 @type 字段的 JSON 数据,并注意覆盖 URL 参数和请求体,防范编码绕过。
Q&A
Fastjson 2.x 远程代码执行漏洞的 CVSS 评分是多少?
CVSS 评分为 9.8。
哪些 Fastjson 2.x 版本受此远程代码执行漏洞影响?
受影响版本为 Fastjson2.x <= 2.0.62。
为什么 Fastjson 2.x 在未启用 SupportAutoType 时仍存在远程代码执行风险?
因为 Fastjson2.x 在默认配置未启用 SupportAutoType 时,仍可能通过内置白名单处理 JSON 中的 @type,攻击者可构造特制恶意 JSON 数据,无需目标服务存在任何第三方危险类即可实现远程代码执行。
如何检测当前项目使用的 Fastjson 版本?
可以使用命令 lsof | grep fastjson 检测,或查找项目目录中是否存在 fastjson-[version].jar 文件;使用 Maven 打包的项目可通过 pom.xml 查看当前使用的 fastjson 版本。
如果暂时无法升级 Fastjson,有哪些临时缓解措施?
可以开启 SafeMode 安全模式,配置后无论白名单和黑名单都不支持 autoType,可杜绝反序列化漏洞攻击;也可以通过 WAF 等安全设备拦截请求体中 key 包含 @type 字段的 JSON 数据,需同时覆盖 URL 参数和请求体并注意编码绕过。
如何开启 Fastjson 的 SafeMode?
有三种方式:在代码中配置 ParserConfig.getGlobalInstance().setSafeMode(true); 加上 JVM 启动参数 -Dfastjson.parser.safeMode=true;通过类路径的 fastjson.properties 文件配置 fastjson.parser.safeMode=true。