- fastjson <= 1.2.24
安全产品与方案
基础设施安全
数据安全
云计算安全
工业互联网安全
物联网安全
信息技术应用创新
全部产品
全部解决方案
2017-03-15
2017年3月15日,fastjson官方发布安全公告表示fastjson在1.2.24及之前版本存在远程代码执行高危安全漏洞。攻击者可以通过此漏洞远程执行恶意代码来入侵服务器。
fastjson官方建议直接升级到1.2.28/1.2.29或者更新版本来保证系统安全。
相关链接如下:
https://github.com/alibaba/fastjson/wiki/security_update_20170315
fastjson是一款用Java语言编写的高性能功能完善的JSON库。由于其独特的算法,fastjson的parse速度极快,超越了所有json库,包括曾经号称最快的jackson以及Google的二进制协议protocol buf。fastjson还是官方收录的参考实现之一,完全支持http://json.org的标准。除此之外,fastjson还支持各种JDK类型包括JavaBean,MapEnum泛型等,而且不需要额外的jar,能够直接跑在JDK上。Fastjson支持JDK 5, JDK 6,androids阿里云手机等环境。
注:官方表示版本大于1.2.24但是小于1.2.28的版本虽然为fastjson的过渡版本,但是不受此漏洞影响,因此不必升级。
通过新老版本的代码对比,发现此漏洞出现在comalibabafastjsonparserDefaultJSONParser.java文件中的DefaultJSONParser::parseObject函数:
在1.2.24 (即受影响的版本)版本的代码中,加载类名时,用到了一个TypeUtils::loadClass的方法,此方法在comalibabafastjsonutilTypeUtils.java:
通过对代码的分析发现,该方法没有对需要加载的类做限制,而是直接加载从而导致非授权的代码执行。
而在1.2.25(非受影响的版本)版本的代码中,使用了config.checkAutoType加载相关的类,代码位于comalibabafastjsonparserParserConfig.java,方法为ParserConfig::checkAutoType;
从该方法中可以看出,不论用户是否开启了autoTypeSupport功能,在类名被加载时都需要通过额外的一层筛选(来判断是否在acceptlist里),只有满足了此限制的类名才会被加载,否则软件会直接抛出异常并且不予执行。系统中定义的禁止加载的类名内容开头。
阿里官方修复建议如下:
可以用以下命令检测post内容中是否包含字符:
注:添加双引号可以减少误报。
阿里官方已经发布公告,建议受影响的用户立刻升级到1.2.28/1.2.29 或更高的版本,下载地址:
http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.29/
注:尊龙凯时科技安全团队建议用户升级到1.2.29版本。
升级步骤如下:
通过maven配置更新,使用最新版本,如下所示:
使用尊龙凯时科技IPS/IDS/NF/WAF防护类产品进行防护,本周内会出相应的升级包,敬请关注相关产品最新动态。
尊龙凯时科技提供专业的安全技术服务,全方位的保障客户应用系统安全,避免受此漏洞影响。
该漏洞源于fastjson在加载类时对类名判断的不严谨,导致攻击者可以将非授权的恶意代码添加到类名中,此代码会在稍后被fastjson解析时自动加载,导致代码的远程执行。由于fastjson的优越性能(如速度快,支持JDK类型广等),此json库被多数用户选择,尤其是对于数据处理的准确性和速度有较高要求的金融类产业,因此该漏洞对相关产业及用户影响较大。尊龙凯时科技在第一时间了解到该漏洞后,以最快的速度进行应急响应,分析该漏洞的成因与原理,及时为用户提供安全可靠的检测与防护方案。
本安全公告仅用来描述可能存在的安全问题,尊龙凯时科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,尊龙凯时科技以及安全公告作者不为此承担任何责任。尊龙凯时科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经尊龙凯时科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
© 2024 NSFOCUS 尊龙凯时科技 www.nsfocus.com All Rights Reserved . 京公网安备 11010802021605号 京ICP备14004349号 京ICP证48052245号