SpringBoot项目中 Spring Framework远程代码执行漏洞的处理方案

在这里插入图片描述

😄 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版本决定

  • 38
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
要升级 Spring Framework 版本,您可以按照以下步骤进行操作: 1. 打开您的 Spring Boot 项目,并在 pom.xml 文件找到 Spring Framework 相关的依赖项。 2. 更改版本号为所需的版本号。您可以在 Spring Framework 官方网站上查看最新版本号。 3. 保存 pom.xml 文件。 4. 在命令导航到项目目录,并运行以下命令: ``` mvn clean install ``` 这将更新 Maven 依赖并重新构建项目。 5. 如果您使用的是 Spring Boot 2.4 或更高版本,则可以使用 Spring Boot Maven 插件来升级 Spring Framework 版本。您可以在 pom.xml 文件添加以下代码: ``` <properties> <spring.version>5.3.5</spring.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <mainClass>${start-class}</mainClass> </configuration> </plugin> </plugins> </build> ``` 在上面的示例,您可以将 `<spring.version>` 更改为所需的版本号。 6. 保存 pom.xml 文件,并在命令导航到项目目录,运行以下命令: ``` mvn spring-boot:run ``` 这将使用更新后的 Spring Framework 版本重新启动应用程序。 请注意,在升级 Spring Framework 时,可能会发生不兼容的更改,因此在升级之前,请确保您的代码已经过充分测试,并准备好解决任何可能出现的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Micro麦可乐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值