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

06-30 1114阅读

Fastjson

漏洞描述

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

Fastjson < 1.2.83 任意代码执行漏洞(CVE-2022-25845)
(图片来源网络,侵删)

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

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]