5月23日,绿盟科技CERT监测到Fastjson官方发布公告称在1.2.80及以下版本中存在新的反序列化风险,在特定条件下可绕过默认autoType关闭限制,从而反序列化有安全风险的类,攻击者利用该漏洞可实现在目标机器上的远程代码执行。
参考链接:https://github.com/alibaba/fastjson/wiki/security_update_20220523
影响范围
受影响版本
Fastjson ≤ 1.2.80
解决方案
-
升级到最新版本
1.2.83下载链接:https://github.com/alibaba/fastjson/releases
升级步骤如下:
1.备份原fastjson依赖库,避免升级失败的情况发生。
2.将低版本的fastjson库替换为1.2.83版本即可
开发人员可通过配置Maven的方式对应用进行升级并编译发布,配置如下:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency> -
safeMode加固
fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,完全禁用autoType。无论白名单和黑名单,都不支持autoType,可杜绝反序列化Gadgets类变种攻击
参考链接:https://github.com/alibaba/fastjson/wiki/fastjson_safemode
三种配置SafeMode的方式如下:
-
在代码中配置
ParserConfig.getGlobalInstance().setSafeMode(true); -
加上JVM启动参数
-Dfastjson.parser.safeMode=true -
通过fastjson.properties文件配置
通过类路径的fastjson.properties文件来配置,配置方式如下:
fastjson.parser.safeMode=true
-
-
怎么判断是否用到了autoType
看序列化的代码中是否用到了SerializerFeature.WriteClassName
JSON.toJSONString(obj, SerializerFeature.WriteClassName); // 这种使用会产生@type
绿盟科技发现Fastjson 1.2.80以下版本存在反序列化漏洞,可执行代码。建议升级至1.2.83并启用safeMode以防止攻击。解决方案包括备份、升级、配置safeMode和检查autoType使用情况。
376

被折叠的 条评论
为什么被折叠?



