fastjson 远程代码执行误差处置惩罚建议

宣布时间 2019-06-26

误差编号和级别


CVE编号:暂无 ,危险级别:高危 ,CVSS分值:官方未评定


影响版本


受影响的版本


fastjson < 1.2.30

1.2.41 < fastjson < 1.2.45


误差概述


fastjson是阿里巴巴的开源JSON剖析库 ,它可以剖析JSON名堂的字符串 ,支持将Java Bean序列化为JSON字符串 ,也可以从JSON字符串反序列化到JavaBean ,由于具有执行效率高的特点 ,应用规模很广。


克日 ,网络到关于fastjson javaweb框架的0day误差情报 ,由于fastjson在举行实例化工具时没有对输入数据举行严酷限制 ,攻击者只要全心结构json数据 ,即可造成远程代码执行。


默认开启了autoType功效 ,可以在json中通过@type指定类举行自动实例化。例如 ,“{“@type”:“com.cmbc.Test”}”在使用Fastjson内JSON.parse()、JSON.parseObject()、JSONObject.parseObject(  )、 JSON.parseAarry(  )等接口处置惩罚上述json名堂的时 ,会挪用com.cmbc.Test类的默认结构函数实例化一个工具。若是我们结构json名堂如: {“@type”:“com.cmbc.Test”,“val1”:“test”,“val2”:“test2”},那么Fastjson在实例化工具的时间会同时去挪用com.cmbc.Test的setVal1(String val1)和setVal2(String val2)函数。使用Fastjson的这种特征 ,只要结构响应代码 ,发送给保存fastjson处置惩罚的� ?榫突嵩斐稍冻檀胫葱�。


关于目今项目 ,可通过审查版原来判断是否受影响 ,进入项目目录找到fastjson组件 ,通过文件名可获取目今版本 ,若是目今版本在受影响规模内 ,则说明目今系统保存危害。


使用maven安排的项目 ,可翻开pom.xml文件 ,搜索如下内容:


<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>x.x.x</version>

</dependency>


其中 x.x.x 即为版本号。


误差验证


暂无POC/EXP。


修复建议


凭证现有的情报 ,最新的1.2.58版本不受影响 ,可会见以下链接举行下载:http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.58/。


使用maven安排的项目可修改依赖举行版本更新:


<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>fastjson</artifactId>

    <version>1.2.58</version>

</dependency>


参考链接