Spring Security 的身份验证绕过漏洞CVE-2023-34035

news2025/1/11 11:53:08

文章目录

  • 0.前言
    • 漏洞
    • 漏洞介绍
    • 描述
  • 1.参考文档
  • 2.基础介绍
    • 2.1 组件简介:
    • 2.2 漏洞简介:
  • 3.解决方案
    • 3.1. 升级版本

在这里插入图片描述

0.前言

背景:公司收到关于 Spring Security 的一个身份验证绕过漏洞的通知,该漏洞被标识为 CVE-2023-34035

漏洞

高 | 2023年7月17日 | CVE-2023-34035

关于 Spring Security 的一个身份验证绕过漏洞的通知,该漏洞被标识为 CVE-2023-34035,

漏洞介绍

CVE-2023-34034:WebFlux使用未加前缀的双通配符模式绕过安全性

描述

受影响的Spring产品和版本
Spring Security 5.8.0至5.8.4
Spring Security 6.0.0至6.0.4
Spring Security 6.1.0至6.1.1

受影响版本的用户应采取以下缓解措施。

首先:

5.8.x应升级到5.8.5
6.0.x应升级到6.0.5
6.1.x应升级到6.1.2

1.参考文档

  1. CVE 官方网站 https://www.cve.org/CVERecord
    在这里插入图片描述

  2. https://spring.io/security/cve-2023-34035

  3. https://nvd.nist.gov/vuln/detail/CVE-2023-34035

2.基础介绍

2.1 组件简介:

Spring Security 是一个安全框架,提供身份验证、授权和其他安全功能,用于保护 Web 应用免受攻击。其主要目标是确保只有经过身份验证和授权的用户可以访问应用程序的特定部分或执行特定操作。

2.2 漏洞简介:

收到关于 Spring Security 的一个身份验证绕过漏洞的通知,该漏洞被标识为 CVE-2023-34035,

受影响的 Spring Security 版本存在授权规则配置错误的漏洞,如果应用程序使用 requestMatchers(String) 和多个 Servlet,其中一个是 Spring MVC 的 DispatcherServlet。

(DispatcherServlet 是一个 Spring MVC 组件,将 HTTP 端点映射到带有 @Controller 注解的类的方法。)

具体而言,当满足以下条件时,应用程序就存在漏洞:

  • 类路径上存在 Spring MVC。
  • Spring Security 在单个应用程序中保护多个 Servlet(其中一个是 Spring MVC 的 DispatcherServlet)。
  • 应用程序使用 requestMatchers(String) 引用非 Spring MVC 端点。

如果满足以下任何条件,应用程序就不会存在漏洞:

  • 应用程序没有在类路径上引入 Spring MVC。
  • 应用程序只保护了 Spring MVC 的 DispatcherServlet,没有其他 Servlet。
  • 应用程序仅将 requestMatchers(String) 用于 Spring MVC 端点。
  1. 受影响的版本:
  • 5.8.0 ≤ Spring Security ≤ 5.8.4
  • 6.0.0 ≤ Spring Security ≤ 6.0.4
  • 6.1.0 ≤ Spring Security ≤ 6.1.1

3.解决方案

3.1. 升级版本

以下Spring Security版本修复了此漏洞:

Spring Security 5.8.0至5.8.4
Spring Security 6.0.0至6.0.4
Spring Security 6.1.0至6.1.1

上述版本要求使用以下Spring Framework版本:

5.8.x应升级到5.8.5
6.0.x应升级到6.0.5
6.1.x应升级到6.1.2

Spring 建议采取以下两步缓解措施:
步骤 1:升级到最新版本的 Spring Security(6.1.2 / 6.0.5 / 5.8.5)。链接:https://spring.io/projects/spring-security

步骤 2:如果您正在使用多个 Servlet,其中一个是 Spring MVC 的 DispatcherServlet,在启动时可能会看到以下错误消息:

This method cannot decide whether these patterns are Spring MVC patterns or not. 
If this endpoint is a Spring MVC endpoint,
 please use requestMatchers(MvcRequestMatcher); 
 otherwise, please use requestMatchers(AntPathRequestMatcher).

请按照此错误消息进行操作。

例如,如果使用requestMatchers(String)指向一个非 Spring MVC 端点 /endpoint,那么将其更改为 requestMatchers(new AntPathRequestMatcher("/endpoint"))

如果使用 requestMatchers(String) 指向一个 Spring MVC 端点 /mvc-endpoint,那么将其更改为 requestMatchers(new MvcRequestMatcher(introspector, "/mvc-endpoint")),其中 introspector 是一个 @Autowired 的 HandlerMappingIntrospector

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

滴滴可观测平台 Metrics 指标实时计算如何实现了又准又省?

在滴滴,可观测平台的 Metrics 数据有一些实时计算的需求,承载这些实时计算需求的是一套又一套的 Flink 任务。之所以会有多套 Flink 任务,是因为每个服务按照其业务观测需要不同的指标计算,也就对应了不同数据处理拓扑。我们尽力抽…

ruoyi-vue-pro yudao 项目商城 mall 模块启用及相关SQL脚本

目前ruoyi-vue-pro 项目虽然开源,但是商城 mall 模块被屏蔽了,查看文档却要收费 199元(知识星球),价格有点太高了吧。 分享下如何启用 mall 模块,顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xm…

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测

时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序…

工具篇 | Gradle入门与使用指南

介绍 1.1 什么是Gradle? Gradle是一个开源构建自动化工具,专为大型项目设计。它基于DSL(领域特定语言)编写,该语言是用Groovy编写的,使得构建脚本更加简洁和强大。Gradle不仅可以构建Java应用程序&#x…

亚马逊攀岩绳ASTM F2116 测试报告 EN892测试办理

攀岩绳是与攀岩安全带和锚点相连的一种装备,用于保护攀岩者,使其不会从高处跌落。攀岩绳由承重内芯和围绕内芯编织的护套组成。 亚马逊关于攀岩绳的政策 根据亚马逊的要求,所有攀岩绳均应经过检测,并且符合下列特定法规或标准要求…

使用GSAP创建惊艳的动画效果(一)

目录 GSAP简介GSAP的语法方法目标变量transform(变换)其它属性 vue中使用GSAP安装GSAP引用GSAP使用GSAP GSAP简介 GSAP是一个非常流行的js动画库,被广泛用于创建跨浏览器和跨平台的高性能动画。它的主要特点包括: 提供丰富的属性和方法,可用…

vue2中年份季度选择器(需要安装element)

调用 <!--父组件调用--><QuarterCom v-model"quart" clearable default-current/> 组件代码 <template><div><span style"margin-right: 10px">{{ label }}</span><markstyle"position:fixed;top:0;bottom:0…

人工智能安全-2-非平衡数据处理(2)

5 算法层面 代价敏感&#xff1a;设置损失函数的权重&#xff0c;使得少数类判别错误的损失大于多数类判别错误的损失&#xff1b; 单类分类器方法&#xff1a;仅对少数类进行训练&#xff0c;例如运用SVM算法&#xff1b; 集成学习方法&#xff1a;即多个分类器&#xff0c;然…

【Java 基础篇】Java网络编程实时数据流处理

在现代计算机应用程序中&#xff0c;处理实时数据流是一项关键任务。这种数据流可以是来自传感器、网络、文件或其他源头的数据&#xff0c;需要即时处理并做出相应的决策。Java提供了强大的网络编程工具和库&#xff0c;可以用于处理实时数据流。本文将详细介绍如何使用Java进…

Android之AMessage机制存/取原理(四十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

从零学习开发一个RISC-V操作系统(三)丨嵌入式操作系统开发的常用概念和工具

本篇文章的内容 一、嵌入式操作习系统开发的常用概念和工具1.1 本地编译和交叉编译1.2 调试器GDB&#xff08;The GNU Project Debugger&#xff09;1.3 QEMU模拟器1.4 项目构造工具Make 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记&#xff0c;计划从RISC…

Gnuplot:安装与使用备忘

异常信息 问题起源于 signalp-4.1 调用 gnuplot 进行画图&#xff0c;在画图的时候提示不支持 png 格式结果&#xff1a; $ gnuplotG N U P L O TVersion 5.0 patchlevel 0 last modified 2015-01-01Copyright (C) 1986-1993, 1998, 2004, 2007-2015Thomas Williams, Coli…

服务网格的工作原理:解析服务网格的核心组件和通信模式

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

实用!Python大型Excel文件处理:快速导入、导出与批量处理

Python 是一种功能强大的编程语言&#xff0c;它提供了丰富的库和工具&#xff0c;使得处理大型 Excel 文件变得容易和高效。下面将介绍如何使用 Python 快速导入、导出和批量处理大型 Excel 文件。下面是一些建议和实践经验&#xff0c;希望能对你有所帮助。 一、Excel 文件处…

【C语言】求一个整数的二进制序列中1的个数的三种方法

方法一&#xff1a;逐位%2法 该方法的初步测试代码如下: int NumberOf1(int n) {int count 0;while (n){if (n % 2 1){count;}n n / 2;}return count; } 众所周知&#xff0c;数据在内存里以补码的形式存储&#xff0c;这是为了简化计算机的结构设计&#xff0c;同时也提…

SpringBoot集成Prometheus实现监控

SpringBoot配置Prometheus pom.xml 引入监控以及prometheus依赖 <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency><dependency><groupId>org.springfram…

Excel——时间戳与标准北京时间的互相转换

一、背景 在excel中将13位毫秒级别的时间戳转换为标准的日期格式(yyyy-mm-dd hh:mm:ss.000)&#xff0c;使用如下模板 TEXT(<source_cell>/1000/8640070*36519,"yyyy-mm-dd hh:mm:ss.000") 在excel中将10位秒级别的时间戳转换为标准的日期格式(yyyy-mm-dd h…

【华为云云耀云服务器L实例评测】- 云原生实践,快捷部署人才招聘平台容器化技术方案!

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

WebGL 选中一个表面

目录 选中一个表面 示例程序&#xff08;PickFace.js&#xff09; 代码详解 示例效果 选中一个表面 ​​​​​​​WebGL 选中物体_山楂树の的博客-CSDN博客可以使用同样的方法来选中物体的某一个表面。这一节在PickObject程序的基础上编写了PickFace程序&#xff0c;后…

计算机毕业设计 基于SSM+Vue的物资存储系统(以消防物资为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…