开发者

SpringBoot:2.7.x至2.7.18及更旧的版本,漏洞说明详解

开发者 https://www.devze.com 2025-10-31 10:43 出处:网络 作者: ❀͜͡傀儡师
目录Spring Framework 最新漏洞分析与修复方法CVE-2024-38808 漏洞分析CVE-2024-38809 漏洞分析如何在 Spring Boot 2.x 项目中修复漏洞1 在最外层的主pom 添加 spring-framework-bom 依赖2 确认依赖版本3 检查 Sprin
目录
  • Spring Framework 最新漏洞分析与修复方法
    • CVE-2024-38808 漏洞分析
    • CVE-2024-38809 漏洞分析
  • 如何在 Spring Boot 2.x 项目中修复漏洞
    • 1 在最外层的主pom 添加 spring-framework-bom 依赖
    • 2 确认依赖版本
    • 3 检查 Spring EL 的使用
  • 建议
    • 总结

      本文提供的修复指南将帮助开发者有效规避 CVE-2024-38808 和 CVE-2024-38809 的风险。

      如果你正在使用老版本的 Spring Boot,请尽快参考本文进行修复与升级。

      此漏洞来源于spring官网:

      • https://spring.io/blog/2024/08/14/spring-framework-releases-fixes-for-cve-2024-38808-and-cve-2024-38809

      漏洞地址:

      • https://spring.io/security/cve-2024-38808
      • https://spring.io/security/cve-2024-38809

      SpringBoot:2.7.x至2.7.18及更旧的版本,漏洞说明详解

      SpringBoot:2.7.x至2.7.18及更旧的版本,漏洞说明详解

      Spring Framework 最新漏洞分析与修复方法

      最近,Spring Framework 曝出了两个严重的安全漏洞:CVE-2024-38808 和 CVE-2024-38809。

      这两个漏洞都可能导致拒绝服务(DOS)攻击,严重影响系统的稳定性和安全性。

      本文将详细介绍这两个漏洞的影响范围、修复方法,以及在 Spring Boot 2.x 项目中如何进行版本升级

      CVE-2024-38808 漏洞分析

      1) 漏洞说明

      在 Spring Framework 版本 5.3.0 至 5.3.38 及更早的不受支持版本中,如果应用程序评估了用户提供的 SpEL(Spring Expression Language)表达式,攻击者可以利用特制的表达式导致拒绝服务(DoS)攻击。

      2) 受影响的产品和版本

      • Spring Framework: 5.3.0 至 5.3.38 及更早的版本
      • Spring Boot: 2.7.x 至 2.7.18 及更早的版本

      3) 缓解措施

      建议受影响版本的用户升级到以下修复版本:

      SpringBoot:2.7.x至2.7.18及更旧的版本,漏洞说明详解

      对于 5.3.x 用户,建议升级到 5.3.39+ 或直接迁移至 6.0+。在无法完全避免用户提供 SpEL 表达式的情况下,应使用 SimpleEvaLuationContext.forReadOnlyDataBinding 进行只读模式下的表达式评估。

      CVE-2024-38809 漏洞分析

      1) 漏洞说明

      当应用程序解析 HTTP 请求头中的 “If-Match” 或 “If-None-Match” ETag 时,可能会遭受 DoS 攻击。

      2)受影响的产品和版本

      • Spring Framework:
      6.1.0 至 6.1.11
      6.0.0 至 6.0.22
      5.3.0 至 5.3.37 及更早版本
      
      • Spring Boot:
      3.1.0 至 3.1.12
      3.0.0 至 3.0.13
      2.7.x 至 2.7.18 及更早版本
      

      3) 缓解措施

      建议受影响版本的用户升级到以下修复www.devze.com版本:

      SpringBoot:2.7.x至2.7.18及更旧的版本,漏洞说明详解

      如果无法立即升级,用户可以通过配置 Filter 限制 “If-Match” 和 “If-None-Match” 头的大小,以减少攻击面。

      如何在 Spring Boot 2.x 项目中修复漏洞

      Spring Boot 2.7.x、3.0.x、3.1.x 等版本已经停止更新,用户需要手动调整 Spring Framework 版本,以下是具体操作步骤:

      php

      1 在最外层的主pom 添加 spring-framework-bom 依赖

      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-framework-bom</artifactId>
                  <version>5.3.39</version> <!--最新5.0x的版本-->
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
          </dependencijavascriptes>
      </dependencyManagement>
      

      2 确认依赖版本

      刷新IDEA的 Maven 依赖,确保拉取到的 Spring Framework 版本为最新的 5.3.39+

      3 检查 Spring EL 的使用

      对于涉及到 SpEL 表达式的地方,如自定义注解限流、权限校验、缓存等功能,需要确认是否读取了用户提供的请求参数。

      如果有此类情况,建议使用 SimpleEvaluationContext.forReadOnlyDataBinding 构建只读上下文,避免潜在风险。

      建议

      随着 Spring Framework 的广泛应用,及时更新和修复漏洞对保证系统安全至关重要。

      android文的修复将帮助更多的开发者有效规避 CVE-2024-38808 和 CVE-2024-38809 的漏洞风险。

      如果你正在使用旧版本的 Spring Boot 版本,请尽快参考本文进行修复与升级喔。

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多python支持编程客栈(www.devze.com)。

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号