全站搜索

FASTJSON反序列化远程代码执行漏洞通告

分类:漏洞通告 1117

一、漏洞概述

5月23日,武汉明嘉信安全实验室“阿努纳奇”团队研究成员关注到Fastjson官方发布公告称在1.2.80及以下版本中存在新的反序列化风险,在特定条件下可绕过默认autoType关闭限制,从而反序列化有安全风险的类,攻击者利用该漏洞可实现在目标机器上的远程代码执行。请相关用户尽快采取防护措施。

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

参考链接:
https://github.com/alibaba/fastjson/wiki/security_update_20220523

二、影响范围

受影响版本

Fastjson ≤ 1.2.80

 

不受影响版本

Fastjson = 1.2.83

 

三、漏洞检测

3.1 手工检测版本号

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

lsof | grep fastjson

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

 

四、漏洞复现

App Fastjson

Path fastjson/1.2.47-rce

运行测试环境:

docker-compose up -d

环境运行后,访问http://your-ip:8090即可看到JSON格式的输出

 

首先编译并上传命令执行代码,然后借助marshalsec项目,启动一个RMI服务器,监听9999端口,并制定加载远程类TouchFile.class,最后向靶场发送payload:

成功反弹shell:

 

五、漏洞防护

4.1 官方升级

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

升级步骤如下:

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

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

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

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

上一篇: 下一篇: