【缝隙公告】Spring Framework远程代码执行缝隙(CVE-2022-22965)

颁布功夫 2022-03-31

0x00 缝隙概述

CVE   ID

CVE-2022-22965

时    间

2022-03-31

类    型

RCE

等    级

严沉

远程利用

是

影响领域


攻击复杂度

低

用户交互

无

PoC/EXP

已公开

在野利用


 

0x01 缝隙详情

Spring Framework 是一个开源的轻量级J2EE利用法式开发框架 。

3月31日,VMware颁布安全布告,建复了Spring Framework中的远程代码执行缝隙(CVE-2022-22965) 。在 JDK 9 及以上版本环境下,能够利用此缝隙在未授权的情况下在指标系统上写入恶意法式从而远程执行肆意代码 。

该缝隙影响了在JDK 9+上运行的Spring框架或其衍生框架构建的网站或利用,目前官方已在Spring Framework 5.3.18+和5.2.20+中建复了此缝隙 。鉴于此缝隙的PoC/EXP已公开,建议有关用户尽快排查建复 。

 

影响领域

运行环境为JDK9及以上版本的:

Spring Framework 5.3.0 -5.3.17

Spring Framework 5.2.0 - 5.2.19

以及其它旧版的、不受支持的版本 。


0x02 安全建议

通用建复

目前官方已经建复了此缝隙,受影响用户能够升级更新到Spring Framework 5.3.18或5.2.20 。

下载链接:

https://github.com/spring-projects/spring-framework/tags

 

缝隙排查

当同时满足以下前提时,批注可能受此缝隙影响:

l  JDK版本 >= 9;

l  使用Spring框架或衍生框架,当前使用了Tomcat中央件(目前公开的缝隙利用代码只针对Tomcat中央件,但不排除存在其它风险) 。

 

排查步骤

l  JDK版本号排查

执杏装java -version"号令查看JDK版本,若是版本号幼于蹬宗8,则不受此缝隙影响 。

l  Spring框架使用情况排査

1.若是业务系统项目以war包大局部署,依照如下的步骤进行判断:

解压war包:将war文件的后级批改成 .zip文件;

在解压缩目录下搜索是否存在spring-beans-*.jar体式的文件(例如spring-beans-5.3.16.jar),如存在则注明业务系统使用了 Spring框架进行开发;

若是spring-beans-*.jar文件不存在,则在解压缩目录下搜索CachedlntrospectionResults.class文件是否存在,如存在则注明业务系统使用了 Spring框架进行开发 。

2. 若是业务系统项目以jar包大局独立运行,依照如下的步骤进行判断:

解压jar包:将jar文件的后缀批改成zip,解压zip 文件;

在解压缩目录下搜索是否存在spring-beans-*.jar体式的jar文件(例如spring-beans-5.3.16.jar),如存在则注明业务系统使用了 Spring框架进行开发;

若是spring-beans-*.jar文件不存在,则在解压缩目录下搜索CachedIntrospectionResults.class文件是否存在,若是存在则注明业务系统使用了 Spring框架进行开发 。

 

一时措施

需同时按以下两个步骤进行缝隙的一时建复:

1、在利用中全局搜索@InitBinder注解,看看步骤体内是否挪用dataBinder.setDisallowedFields步骤,若是发现此代码片段的引入,则在原来的黑名单中,增长{"class.*","Class.*","*.class.*","*.Class.*"} 。注:若是此代码片段使用较多,必要每个处所都追加 。

2、在用系统的项目包下新建以下全局类,并保障这个类被Spring 加载到(推荐在Controller地点的包中增长) 。实现类增长后,需对项目进行沉新编译打包和职能验证测试,并沉新颁布项目 。

import org.springframework.core.annotation.Order;

import org.springframework.web.bind.WebDataBinder;

import org.springframework.web.bind.annotation.ControllerAdvice;

import org.springframework.web.bind.annotation.InitBinder;

@ControllerAdvice

@Order(10000)

public class GlobalControllerAdvicc{

@InitBinder

public void setAllowedFields(webdataBinder dataBinder){

String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"};            dataBinder.setDisallowedFields(abd);

}

}

 

0x03 参考链接

https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

https://tanzu.vmware.com/security/cve-2022-22965

https://github.com/spring-projects/spring-framework/

 

0x04 版本信息

版本

日期

批改内容

V1.0

2022-03-31

初次颁布

 

0x05 附录

宝运莱官方网站简介

宝运莱官方网站公司成立于1996年,并于2010年6月23日在深交所中幼板正式挂牌上市,是国内极具实力的、占有齐全自主知识产权的网络安全产品、可信安全治理平台、安全服务与解决规划的综合提供商 。

公司总部位于北京市中关村软件园,在全国各省、视注自治区设有分支机构,占有覆盖全国的渠路系统和技术支持中心,并在北京、上海、成都、昭通、长沙、荆门等多地设有研发中心 。

多年来,宝运莱官方网站致力于提供拥有国际竞争力的自主创新的安全产品和最佳实际服务,援手客户全面提升其IT基础设施的安全性和出产效力,为打造和提升国际化的民族信息安全产业领军品牌而不懈致力 。


关于宝运莱官方网站

宝运莱官方网站安全应急响应中心重要针对沉要安全缝隙的预警、跟踪和分享全球最新的威胁谍报和安全汇报 。

关注以下公家号,获取全球最新安全资讯:

image.png