😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~
这里写目录标题
前言
公司最近要求对所有项目进行漏洞检测修复,其中有一项漏洞名称为
Spring Framework远程代码执行漏洞(CVE-2022-22965)
需要升级Spring Framework版本解决,如图
- 该漏洞等级为:高危
- 影响范围:
Spring Framework < 5.3.18``````Spring Framework < 5.2.20
- 修复建议 将Spring Framework升级至安全版本 ,即升级5.2.20及以上版本 或 5.3.18及以上版本,具体官方修复的5.2和5.3版本可以查找 https://github.com/spring-projects/spring-framework/tags
问题
由于某个项目使用的SpringBoot版本为
2.3.11.RELEASE
而默认对应的Spring Framework版本为
5.2.15.RELEASE
,直接升级 5.3.18 及以上版本会导致项目各种报错,这里博主还是决定升级为
5.2.20.RELEASE
基于spring-boot-starter-parent方式解决
这种方式通过 spring-boot-starter-parent 引入并使用spring boot,这种方式只需要在pom文件中加入springframework 的版本号变量就可以覆盖版本号的定义
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.3.11.RELEASE</version>
</parent>
<properties>
<spring-framework.version>5.2.20.RELEASE</spring-framework.version>
</properties>
基于spring-boot-dependencies方式解决
通过在dependencyManagement中加入对应的spring-framework-bom处理,在此之前我们可以查看
spring-boot-dependencies.pom
配置可以看到对应spring-framework版本,以及spring-framework-bom的相关配置
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.2.20.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.11.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
值得注意的是
spring-framework-bom
必须在
spring-boot-dependencies
之前否则不生效!
检查是否完成升级
通过maven刷新项目,查看项目依赖,检查springframework是否升级到了指定版本
结语
本文主要和大家分享一下博主本次处理低版本SpringBoot项目的Spring Framework远程代码执行漏洞的方案,具体升级至什么版本主要还是看大家使用的SpringBoot版本决定
版权归原作者 Micro麦可乐 所有, 如有侵权,请联系我们删除。