Spring Boot、Spring Security升级、版本选择、安全漏洞说明

一、概述

截止(2022-05-26),推荐Spring Boot 2.6.8及以上,如果使用jdk8则可以使用Spring Boot 2.5.14。

Springboot可以依据以下几点进行版本选择。

依据一:官方主维护

截止(2022-05-26)为止,Spring Boot 2.5 、2.6为官方主要维护版本。

发行说明 : https://github.com/spring-projects/spring-boot/wiki


依据二:CVE-2022-22965

0x01漏洞详情

Spring Framework存在远程代码执行漏洞,在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击。RCE(remotecommand/code exec cute),远端命令执行,相当于一个命令窗口。发生在2021年的Log4j的漏洞也有类似的状况。

0x02影响范围

  • Spring Framework < 5.3.18
  • Spring Framework < 5.2.20

0x03同时满足才会受影响

  • JDK9及以上版本
  • 使用Tomcat服务器
  • 以war部署运行
  • 使用了spring-webmvc或spring-webflux

0x04处置建议

将Springboot升级到2.6.6。


依据三:CVE-2022-22978

0x01漏洞详情

当SpringSecurity中使用RegexRequestMatcher进行权限配置,且规则中使用带点号的正则表达式时,未经授权的远程攻击者可通过构造恶意数据包绕过身份认证,导致配置的权限验证失效。

0x02影响范围

  • Spring Security 5.5.x < 5.5.7
  • Spring Security 5.6.x<5.6.4
  • SpringSecurity其他低版本同样受影响

0x03处置建议

升级到官方已发布的最新版本:
Spring Security 5.5.x升级至 5.5.7:
https://github.com/spring-projects/spring-security/releases/tag/5.5.7
Spring Security 5.6.x升级至5.6.4 ∶
https://github.com/spring-projects/spring-security/releases/tag/5.6.4

0x04参考链接

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

0x05版本依赖

Spring BootSpring Security是否受CVE-2022-22978影响
2.5.135.5.6
2.5.145.5.8否(可用)
2.6.55.6.2
2.6.75.6.3
2.6.85.6.5否(可用)

二、版本选择

截止(2022-05-26),推荐Spring Boot 2.6.8及以上,如果使用jdk8则可以使用Spring Boot 2.5.14。

  • 注意1: SpringBoot2.6以后需要手动设置循环引用。

    SpringBoot2.6 正式发布:循环依赖默认禁止。

    application.properties

    spring.main.allow-circular-references=true
    

    application.yml

    spring:
      main:
        allow-circular-references:true
    
  • 注意2: Spring Boot 2.5.14 版本默认 resources 为 3.2.0,编译报错,手动降低版本。

    问题:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
    

    解决:pom.xml手动降低版本

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <version>2.7</version>
    </plugin>
    
  • 注意3: Spring Boot 2.5.14内置了netty相关依赖,如果在pom中配置了netty依赖,则会报已经包含了一个兼容版本。

    Correct the classpath of your application so that it contains a single, compatible version of io.netty.resolver.dns.DnsNameResolverBuilder
    

    解决:去掉pom.xml中netty依赖

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Spring Boot 2.6是Spring Boot框架的最新版本Spring Security是一个基于Spring框架的安全性控制框架。 Spring Boot 2.6相比之前的版本,带来了许多新功能和改进。它提供了更好的性能和稳定性,同时也修复了一些先前版本中存在的漏洞和问题。此外,Spring Boot 2.6还增加了一些新的特性,例如对Java 17的全面支持、改进的响应式编程支持以及集成的监视和管理功能等。这些改进使得Spring Boot更易用、更强大,能够更好地满足开发人员的需求。 而Spring Security作为Spring框架的一个重要模块,主要用于实现身份验证和授权功能。它提供了强大的安全性控制机制,可用于保护Web应用程序、RESTful API和微服务等。Spring Security提供了多种认证和授权方式,包括基于传统的用户名和密码、Token认证、OAuth2、LDAP认证等。它还支持自定义的权限验证规则,使开发人员能够灵活地定义和管理用户的访问权限。 Spring SecuritySpring Boot 2.6的结合使用能够极大地简化安全性配置和集成。Spring Boot 2.6提供了对Spring Security的自动化配置,使得开发人员无需手动配置大量的安全性相关设置,而是可以通过简单的注解和配置实现安全性控制。此外,Spring Boot 2.6还提供了与其他安全性框架和技术的集成,如Spring Session、Spring Actuator和Spring Cloud Security等,使得开发人员能够更便捷地实现应用程序的认证和授权功能。 总而言之,Spring Boot 2.6和Spring Security是一对非常强大的组合。它们可以帮助开发人员快速构建安全可靠的应用程序,并提供灵活的安全性管理和配置选项。无论是开发Web应用程序还是微服务,使用Spring Boot 2.6和Spring Security都能够提供优秀的安全性支持。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码上富贵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值