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>


参考链接