首页 前端知识 Fastjson < 1.2.83 任意代码执行漏洞(CVE-2022-25845)

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

2024-06-07 12:06:13 前端知识 前端哥 622 244 我要收藏

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

转载请注明出处或者链接地址:https://www.qianduange.cn//article/11301.html
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!