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

文章目录

  • 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.rhkb.cn/news/132982.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java项目之固定资产管理系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的固定资产管理系统。源码和部署相关看文章末尾! 开发环境: 后端: 开发语言:Java 框架&…

尚硅谷JAVA数据结构与算法--希尔排序

一、希尔排序 也称缩小增量排序,分为交换法和移动法,移动法速度更快。 交换法: package 希尔排序; //交换法 import java.util.Arrays;public class ShellSort {public static void main(String[] args) {int[] arr{7,1,4,6,8,9,5,2,3,10}…

前端架构设计:构建可维护、可扩展的现代Web应用

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 引言 前端架构设计是现…

EndNote21 | 账户同步问题

问题:无法同步,提示如下图所示。 原因:网络问题。 解决方法:国内网络无法实现同步,解决上网问题即可。

Ubuntu下Nginx配置ModSecurity详细思路及过程

下面是一个简介: Ubuntu是一个linux操作系统,Nginx是一个web服务器软件,ModSecurity是一款开源的web应用防火墙(江湖人称“WAF”)。 如果上面的概念没有一定的了解,下面的内容其实也能看。就是不好操作。…

设计模式之中介者模式

尽管将一个系统分割成许多对象通常可以增加其可复用性,但是对象间相互连接的激增又会降低其可复用性 大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的行为进行任何较大的改…

美创科技入选第二届安徽省网络和数据安全应急技术支撑单位

9月11日,2023年安徽省网络安全宣传周活动在阜阳市正式启动。安徽省委常委、宣传部部长陈舜出席并宣布网安周正式启动。阜阳市委书记刘玉杰、省委宣传部副部长、省委网信办主任张杰华出席并致辞。 开幕式上,省委网信办副主任齐海洋发布第二届安徽省网络和…

[论文阅读] SADGA: Structure-Aware Dual Graph Aggregation Network for Text-to-SQL

“SADGA: Structure-Aware Dual Graph Aggregation Network for Text-to-SQL” 是一篇 text2sql 领域的论文,发布于 NeurIPS 2021。 原文链接:https://arxiv.org/abs/2111.00653 项目代码链接:https://github.com/DMIRLAB-Group/SADGA 总体…

搜好货API接口解析,实现获得搜好货商品详情

要解析搜好货API接口并实现获取搜好货商品详情,你需要按照以下步骤进行操作: 了解搜好货开放平台:访问搜好货开放平台官网,找到API接口相关的开发者文档、指南等信息。注册开发者账号:在搜好货开放平台上注册一个开发…

C++之vector迭代器函数begin、end、rebegin、rend、cbegin、cend、crbegin、crend总结(二百零一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

文心一言 VS 讯飞星火 VS chatgpt (93)-- 算法导论9.2 1题

一、用go语言,证明:在 RANDOMIZED-SELECT 中,对长度为0的数组,不会进行递归调用。 文心一言: 在 Go 语言中,我们可以通过实现一个函数来检查数组的长度,如果长度为0,则不进行递归调…

vue3中的吸顶导航交互实现 | VueUse插件

目的:浏览器上下滚动时,若距离顶部的滚动距离大于78px,吸顶导航显示,小于78px隐藏。使用vueuse插件中的useScroll方法​​​​​​​和动态类名控制进行实现 1. 安装 npm i vueuse/core 2. 获得滚动距离 项目中导入&#xff0…

财富潮涌:银行发展绿色经济创新路径

在《玩转金融新“绿”潮,银行纷纷亮大招》内容中,我们带大家了解了商业银行有关绿色信贷产品、绿色债券产品及绿色投资的内容。今天,我们将继续带大家了解商业银行绿色金融实践路径中关于绿色财富、绿色服务和绿色运营的分析。 在绿色金融实…

文件路径中的/,\的区别和文件路径的常见用法

/是Unix和类Unix系统上的路径分隔符.现代Windows通常可以同时使用\和/交换文件路径,但微软\几十年来一直主张使用路径分隔符. 关于文件路径的常用方法再学习一下: "./":代表目前所在的目录 "../":代表上一层目录 以&q…

线性代数的本质(一)——向量空间

文章目录 向量空间向量及其性质基与维数向量的坐标运算 《线性代数的本质》 - 3blue1brown 高中数学A版选修4-2 矩阵与变换 《线性代数及其应用》(第五版) 《高等代数简明教程》- 蓝以中 向量空间 In the beginning Grant created the space. And Grant said, Let there be vec…

Rn视图生成图片并保存到相册

该功能依赖两个组件 完整代码 yarn add react-native-view-shot // 视图生成图片 yarn add expo-media-library // 保存图片import { useState, useRef } from react import ViewShot from "react-native-view-shot" import { View, Text, Button, Image, StyleSh…

pdf文档怎么压缩小一点?文件方法在这里

在日常工作和生活中,我们经常会遇到需要上传或者发送pdf文档的情况。但是,有时候pdf文档的大小超出了限制,需要我们对其进行压缩。那么,如何将pdf文档压缩得更小一点呢?下面,我将介绍三种方法,让…

堆与栈的区别

OVERVIEW 栈与堆的区别一、程序内存分区中的堆与栈1.栈2.堆3.堆&栈 二、数据结构中的堆与栈1.栈2.堆 三、堆的深入1.堆插入2.堆删除:3.堆建立:4.堆排序:5.堆实现优先队列:6.堆与栈的相关练习 栈与堆的区别 自整理,…

【Cocos Creator 3.5实现赛车游戏】10.实现汽车节点的运动逻辑

转载知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 项目地址:赛车小游戏-基于Cocos Creator 3.5版本实现: 课程的源码,基于Cocos Creator 3.5版本实现 上一节的学习后,您已经完成了对汽车节点的控制逻…

【自动驾驶】PETR 环境安装与测试

1.环境安装 该工程依赖MMCV, MMDetection, MMDetection3d,MMSegmentation Install MMCV pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.htmlexamples: pip install…