乐趣区

关于安全:关于fastjson出现反序列化远程代码执行漏洞的通知

近日 fastjson 呈现反序列化近程代码执行破绽。天翼云揭示用户:请尽快采取措施进行排查与防护。

破绽形容
5 月 23 日,fastjson 官网发布公告称在 1.2.80 及以下版本中存在新的反序列化危险,在特定条件下可绕过默认 autoType 敞开限度,从而反序列化有平安危险的类,攻击者利用该破绽可实现在指标机器上的近程代码执行。

fastjson 是开源 JSON 解析库,它能够解析 JSON 格局的字符串,反对将 Java Bean 序列化为 JSON 字符串,也能够从 JSON 字符串反序列化到 Java Bean。因为具备执行效率高的特点,利用范畴宽泛。

破绽详情
破绽名称: fastjson 反序列化近程代码执行破绽
破绽编号: 暂无
破绽类型: 近程任意代码执行
组件名称: fastjson
影响版本: fastjson ≤ 1.2.80
破绽等级: 重大

破绽修复或缓解倡议
人工检测:
相干用户可应用以下命令检测以后应用的 fastjson 版本:
lsof | grep fastjson
注:在 fastjson 1.2.68 及之后的版本中,官网增加了 SafeMode 性能,可齐全禁用 autoType。

官网降级:
目前官网已在最新版本 1.2.83 中修复了该破绽,请受影响的用户尽快降级版本进行防护,官网下载链接:https://github.com/alibaba/fa…

降级步骤如下:

  1. 备份原 fastjson 依赖库,防止降级失败的状况产生。
    2. 将低版本的 fastjson 库替换为 2.83 版本即可

开发人员可通过配置 Maven 的形式对利用进行降级并编译公布,配置如下:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.83</version>
</dependency>
注:该版本波及 autotype 行为变更,在某些场景会呈现不兼容的状况,若遇到问题能够到 https://github.com/alibaba/fa… 寻求帮忙。

长期防护措施:
若相干用户临时无奈进行降级操作,也可应用下列形式进行缓解:

因为 autotype 开关的限度可被绕过,请受影响用户降级 fastjson 至 1.2.68 及以上版本,通过开启 safeMode 配置齐全禁用 autoType。三种配置 SafeMode 的形式如下:

  1. 在代码中配置:
    ParserConfig.getGlobalInstance().setSafeMode(true);
  2. 加上 JVM 启动参数:
    -Dfastjson.parser.safeMode=true
    如果有多个包名前缀,可用逗号隔开。
  3. 通过 properties 文件配置:
    通过类门路的 fastjson.properties 文件来配置,配置形式如下:
    fastjson.parser.safeMode=true

参考官网文档:
https://github.com/alibaba/fa…

  1. 另可通过将有危险的类增加至黑名单进行防护:
    ParserConfig.getGlobalInstance().addDeny(“ 类名 ”);
退出移动版