fastjson 漏洞修复说明

  漏洞信息
内容纲要

一、漏洞描述:

近日,Fastjson Develop Team发布安全公告,修复了一个存在于Fastjson1.2.80及之前版本中的反序列化漏洞。

Fastjson已使用黑白名单用于防御反序列化漏洞,该利用在特定条件下可绕过默认autoType关闭限制,攻击远程服务器,风险影响较大。在默认配置下,当应用或系统使用Fastjson对由用户可控的JSON字符串进行解析时,将可能导致远程代码执行的危害 。建议Fastjson用户尽快采取安全措施保障系统安全。

Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

二、受影响的版本

特定依赖存在下影响 ≤1.2.80

受影响的TDH组件有:inceptor/slipstream/tbak/manager

三、Inceptor/Slipstream组件修复方案

方案一:打开SafeMode加固功能

在1.2.68之后的版本,在1.2.68版本中,fastjson增加了safeMode的支持。safeMode打开后,完全禁用autoType。所有的安全修复版本sec10也支持SafeMode配置。

有三种方式配置SafeMode,参考 https://github.com/alibaba/fastjson/wiki/fastjson_safemode

1. 在代码中配置

ParserConfig.getGlobalInstance().setSafeMode(true);

注意,如果使用new ParserConfig的方式,需要注意单例处理,否则会导致低性能full gc。

2. 加上JVM启动参数

-Dfastjson.parser.safeMode=true

3. 通过fastjson.properties文件配置。

通过类路径的fastjson.properties文件来配置,配置方式如下:

fastjson.parser.safeMode=true

这里,我们针对inceptor或者slipstream组件,可以参考方式2,通过修改参数的方式来实现:

file

  1. 修改 EXTRA_DRIVER_OPTSEXTRA_EXECUTOR_OPTS 这两个参数,添加 -Dfastjson.parser.safeMode=true (多个参数之间通过空格拼接)
  2. 右上角,配置服务
  3. 重启inceptor/slipstream

方案二:更换inceptor/inceptor 镜像中的jar包,升级到最新版本1.2.83

如果检查发现inceptor/inceptor 镜像中的fastjson jar包 版本< 1.2.68,此时 <方案一> 就行不通了,需要通过换包的方式进行修复。

步骤如下:

  1. 删除镜像内 /usr/lib/inceptor/lib/fastjson-1.2.XX.jar
  2. 替换上附件的1.2.83版本的 fastjson-1.2.83.jar
    该步骤需要对 inceptor 和 slipstream 镜像做持久化(如果 inceptor 和 slipstream 并非使用一个镜像,则需要每个单独重做镜像),具体步骤可以参考这个KB http://intkb.transwarp.cn/posts/2568

四、Tbak组件修复方案

受影响的TBAK版本:TBAK3.0.1之前 1.2.47

修复方式:

  1. 替换 TBAK安装路径/unzip/WEB-INF/lib/ 目录下的fastjson相关jar包(使用 fastjson-1.2.83.jar 替换 fastjson-1.2.47.jar)
  2. 替换完成后重启TBAK。

参考内部链接: TBAK Fastjson 反序列化漏洞修复方式

五、Manager组件修复方案

transwarp-8.1.2-final(build c9f84fa4)

8.1.2使用的fastjson版本是1.2.79,此版本存在安全漏洞,可以升级至.1.2.83

修复方案:

进入/lib/transwarp-manager/common/lib,找到fastjson-1.2.79.jar,将其移走到临时目标暂存
下载fastjson-1.2.83.jar,并将其放入上述目录
重启manager即可

manager-7.0.2007a-final build 6e4012cb

虽然引入了fastjson的jar包,但实际没有使用,可以直接将jar包删除。

manager-6.0.2006a-final build ed2a229c

虽然引入了fastjson的jar包,但实际没有使用,可以直接将jar包删除。

manager-6.0.1812a-final build 8222a749

虽然引入了fastjson的jar包,但实际没有使用,可以直接将jar包删除。

transwarp-5.2.2-final build a37e539f

虽然引入了fastjson的jar包,但实际没有使用,可以直接将jar包删除。


FAQ:
fastjson jar包:下载地址:https://github.com/alibaba/fastjson/releases/tag/1.2.83

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。