Fastjson反序列化远程代码执行漏洞

 漏洞资讯     |      2022-05-23

一、  漏洞描述

Fastjson官方发布公告称在1.2.80及以下版本中存在新的反序列化风险,在特定条件下可绕过默认autoType关闭限制,从而反序列化有安全风险的类,攻击者利用该漏洞可实现在目标机器上的远程代码执行。请相关用户尽快采取防护措施。

Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。由于具有执行效率高的特点,应用范围广泛。

二、  漏洞详情

: Fastjson反序列化远程代码执行

CVE:

组件: Fastjson

漏洞类型: 代码问题

影响: 远程代码执行

简述: 见漏洞描述。

三、  影响版本


影响产品或系统版本

安全版本

Fastjson

<=1.2.80

1.2.83

四、  安全版本

见三

五、  安全建议

漏洞自查:

相关用户可使用以下命令检测当前使用的Fastjson版本:

lsof | grep fastjson

注:在Fastjson 1.2.68及之后的版本中,官方添加了SafeMode 功能,可完全禁用autoType。

通用修补建议:

目前官方已在最新版本1.2.83中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接:https://github.com/alibaba/fastjson/releases

升级步骤如下:

备份原fastjson依赖库,避免升级失败的情况发生。

将低版本的fastjson库替换为2.83版本即可

开发人员可通过配置Maven的方式对应用进行升级并编译发布,配置如下:

<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>1.2.83</version>

</dependency>

注:该版本涉及autotype行为变更,在某些场景会出现不兼容的情况,若遇到问题可以到 https://github.com/alibaba/fastjson/issues 寻求帮助。

临时修补建议:

fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可杜绝反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)。开启方法可参考 https://github.com/alibaba/fastjson/wiki/fastjson_safemode 。1.2.83修复了此次发现的漏洞,开启safeMode是完全关闭autoType功能,避免类似问题再次发生,这可能会有兼容问题,请充分评估对业务影响后开启。