Fastjson < 1.2.83 任意代码执行漏洞(CVE-2022-25845)

Fastjson < 1.2.83 任意代码执行漏洞(CVE-2022-25845)

漏洞描述

Fastjson 是Java语言实现的快速JSON解析和生成器。

Fastjson 使用黑白名单用于防御反序列化漏洞,1.2.80及以下版本可利用白名单期望类Throwable绕过黑名单限制,不受默认autoType关闭影响。

结合其他依赖(gadget)的默认行为,如groovy、aspectj等依赖,攻击者可利用该漏洞构造利用链,实现远程执行恶意代码、任意文件读取等操作。

影响范围

com.alibaba:fastjson@[1.1.15, 1.2.83)

修复方案

升级到最新版本1.2.83

开启safeMode

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

有三种方式配置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

验证是否开启安全模式

public class Main {

    public static void main(String[] args) {
        boolean safeModeEnabled = ParserConfig.getGlobalInstance().isSafeMode();

        if (safeModeEnabled) {
            System.out.println("FastJSON的安全模式已经开启。");
        } else {
            System.out.println("FastJSON的安全模式未开启。");
        }
    }

}

tomcat中如何加启动参数

vim /tomcat目录/bin/catalina.sh

JAVA_OPTS="$JAVA_OPTS -Dfastjson.parser.safeMode=true"

参考链接

https://github.com/alibaba/fastjson/wiki/fastjson_safemode

https://www.oscs1024.com/hd/MPS-2022-11320

https://nvd.nist.gov/vuln/detail/CVE-2022-25845

https://github.com/alibaba/fastjson/releases/tag/1.2.83

https://www.oscs1024.com/hd/MPS-2022-11320

https://deps.dev/advisory/osv/GHSA-pv7h-hx5h-mgfj

https://github.com/alibaba/fastjson/wiki/security_update_20220523

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北方的孤夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值