SpringBoot修复Spring AMQP反序列化漏洞(CVE-2023-34050)

news2024/11/16 21:34:42

问题描述:

2023年10月 Spring官方披露 CVE-2023-34050 Spring AMQP反序列化漏洞漏洞。由于 SimpleMessageConverter 或 SerializerMessageConverter 默认未配置白名单,导致可以反序列化任意类。新版本中在未配置白名单的情况下则不允许反序列化任意类。

解决的建议:
1.spring-amqp版本低于2.4.17的用户应升级到2.4.17
2.spring-amqp是3.0.0至3.0.9版本的用户应升级至3.0.10

如果你的SpringBoot版本号大于等于2.7.x,那你只需要将SpringBoot大版本升级到最新版本即可。如下图所示,官方2023年10月份已经更新了2.7及以上版本,这些版本已经修复了该漏洞。比如你的版本是2.7.16,只需要将SpringBoot的版本升级到2.7.17即可

那么低于2.7的版本要怎么修复呢,官方已经没有对这些低版本进行升级了,将SpringBoot从低版本直接升级到2.7或者以上代价又比较大,需要同步升级很多包,比如Springfox 升级要升级为Springdoc,会导致原来的Swagger文档不可用。下面我们就来聊一聊低版本如何修复该漏洞。

如果你引入的amqp的依赖如下所示

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

这种方式引入amq相关的jar包包括了spring-amqp和spring-rabbit,而且它们的版本是一致的,只有改变SpringBoot的大版本才能改变spring-amqp和spring-rabbit的版本,能看到这里,肯定是不想升级大版本的。我们只需要删除上面的依赖,分别引入spring-amqp和spring-rabbit两个jar包即可,如果你本身就是按照下面的方式分别引入依赖包的,那你只需要按照下面的方式指定版本即可。

        <!-- rabbit mq 配置 -->
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-amqp</artifactId>
            <version>2.4.17</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit</artifactId>
        </dependency>

注意:上面我们只指定了spring-amqp的版本,将它升级为2.4.17,我们并没有改变spring-rabbit的版本,如果将它的版本同样设置为2.4.17,那么启动的时候会报spring 的版本冲突,导致无法成功启动项目,通过测试,只需要指定spring-amqp的版本即可,spring-rabbit的版本跟随SpringBoot的版本即可,不用单独指定。

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

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

相关文章

墨西哥专线相关问题快问快答

随着全球贸易的不断发展&#xff0c;越来越多的企业在寻求更便捷、高效的物流解决方案。墨西哥专线作为一种跨境物流方式&#xff0c;受到了越来越多企业的关注。本文将为您解答关于墨西哥专线的相关问题&#xff0c;帮助您更好地了解和运用这一物流方式。 一、墨西哥专线是什么…

为什么要拼命冲刺备考浙大MBA?这可能是最实在的理由了

离考试还有俩月不足&#xff0c;最后的时间里还可以做哪些事情&#xff1f;还有多少种可能&#xff1f;答案是不断往前走就有很多可能性&#xff0c;止步不前大概率是没有可能。无论是提前批面试中已经获得优秀资格的考生还是常规批的考生&#xff0c;最后的备考时间里要说动力…

NPM【问题 01】npm i node-sass@4.14.1报错not found: python2及Cannot download问题处理

node-sass安装问题处理 1.问题2.处理2.1 方案一【我的环境失败】2.2 方案二【成功】2.3 方案三【成功】 1.问题 gyp verb which failed Error: not found: python2 # 1.添加Python27的安装路径到环境变量 gyp verb check python checking for Python executable "python…

【C++】多态 ① ( 类型兼容性原则与函数重写 | “ 多态 “ 引入 | 函数重写 )

文章目录 一、类型兼容性原则与函数重写1、" 多态 " 引入2、函数重写3、类型兼容性原则的几类情况4、父类与子类示例5、父类指针 指向 父类对象 / 子类对象6、父类引用 指向 父类对象 / 子类对象 二、完整代码示例 - 类型兼容性原则与函数重写1、代码示例2、执行结果…

【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)

文章目录 前言一、Rating组件1.1 子组件1.2 接口参数 1.2 属性1.3 事件1.4 示例代码示例代码1示例代码2 二、RichText富文本显示2.1 子组件2.2 接口参数 2.3 事件2.4 属性2.5 富文本所支持的标签2.6 示例代码 总结 前言 Rating组件&#xff1a;提供在给定范围内选择评分的组件…

基于STM32的汽车仪表系统设计

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、方案设计1.1 总体方案论证1.2 项目总体设计 二、软件设计3.1 主程序设计 三、软件设计3.3 emWin图形界面实现实物附录2 源程序清单 四、 结论五、 文章目录 概要 本次课题基于STM32F407微型控制器以及CAN总线…

智能决策:数字孪生的商业洞察

数字孪生在企业管理中的应用是一项重要的技术趋势&#xff0c;它为企业提供了强大的工具&#xff0c;以数字化的方式模拟和管理其物理资产、流程和运营。本文将探讨数字孪生在企业管理中的关键应用领域&#xff0c;以及它对企业的益处。 1. 制造业优化 数字孪生可以在制造业中…

RabbitMQ-死信交换机和死信队列

1. 简介 DLX: Dead-Letter-Exchange 死信交换器&#xff0c;死信邮箱 2.代码示例 Configuration public class RabbitConfig {final static String exchangeNormalName "exchange.dlx.normal";final static String queueNormalName "queue.dlx.normal"…

springsecurity学习笔记-未完

目录 前言 一、概念 1.什么是springsecurity 2.对比shiro 二、开始项目 1.建立一个空项目&#xff0c;建立module&#xff0c;引入相关依赖 2.启动项目&#xff0c;访问项目 3.自定义密码 总结 前言 记录一下学习springsecurity的过程 开发环境&#xff1a;IDEA 一、概念 1.…

shell脚本的编写(输入、输出、变量、数组等的使用规范及实例)

1.shell中变量的定义 使用变量的值&#xff1a; 例子&#xff1a; 2.外部传参/位置变量 例子&#xff1a; 3.输出---echo 4.输入---read 5.命令置换符 作用:把指令的运行结果赋值给变量 6.数组--shell支持稀疏数组

计算机视觉的相机选型

#你一般什么时候会用到GPT?# 目前市面上的工业相机大多是基于CCD&#xff08;ChargeCoupled Device&#xff09;或CMOS&#xff08;Complementary Metal Oxide Semiconductor&#xff09;芯片的相机。一般CCD制造工艺更加复杂&#xff0c;也会更贵一点&#xff01; 1、CCD工…

请求分页中的内存分配

1.最小物理块数的确定 这里所说的最小物理块数&#xff0c;是指能保证进程正常运行所需的最小物理块数。当系统为进程分配的物理块数少于此值时&#xff0c;进程将无法运行。 2.内存分配策略 1&#xff09;内存分配策略 固定分配是指为每个进程分配一固定页数的内存空间&am…

支持自动生成API文档 Apipost 真香

在数字化时代&#xff0c;API已经成为了应用程序之间进行通信的关键桥梁。随着API的普及和复杂性的增加&#xff0c;API研发和管理也面临着越来越多的挑战。为了更好地应对这些挑战&#xff0c;Apipost提供了一整套API研发工具&#xff0c;包括API设计、API调试、API文档和API自…

碳排放数据,各地区的(直辖市数据细分到区县),含shp和xlsx格式,带符号化

这两天推了道路相关的数据&#xff0c;道路线路、客运飞机场、航空、地铁、火车站点等等交通出行类的数据之前都已发过&#xff0c;需要的可以自己翻一翻。 交通运输行业还比较关注的碳排放数据&#xff0c;也整理出来了&#xff0c;有需要的自取。 数据地址&#xff1a; 全…

政务可视化 玫瑰图和柱折混合图

安装echarts时&#xff0c;需进入到vue-demo的目录下 与第二章操作步骤相同 删除全部默认效果 将上述60像素删除&#xff0c;设置整个背景宽&#xff0c;高等 设置标题 设置图表结构&#xff08;左右两个盒子&#xff09; 设置图表边框&#xff0c;宽&#xff0c;高&#xff0…

Peter算法小课堂—归并排序

位运算 << 这个符号相当于将一个数二进制往左移动几位&#xff0c;如(100110)2<<1(001100)2。相当于乘以2的k次方 >> 这个符号相当于将一个数二进制往右移动几位&#xff0c;如(100110)2<<1(0100110)2。相当于除以2的k次方 归并排序 先看一个视频…

token正确不报错,token失效后却出现报跨域错误

1.今天在使用koajs开发项目时&#xff0c;突然发现前端配置axios的response获取不到后端定义的token失效内容了&#xff0c;取而代之的是出现了跨域的错误。 2. 我马上去查找koajs的跨域中间件配置&#xff0c;发现配置完好cors&#xff0c;token正确时&#xff0c;接口正常访问…

code too large

描述&#xff1a;比较尴尬&#xff0c;一个方法的代码接近10000行了&#xff0c;部署服务器的时候提示(java :code[255,21] too large),提示代码过长&#xff0c;无法运行。 查看了一下百度&#xff1a;解决的思路 JVM规范&#xff1a;「类或接口可以声明的字段数量限制在 655…

水声功率放大器的应用场景是什么

水声功率放大器是一种专门用于水声信号处理和传输的设备&#xff0c;通过放大水声信号的功率&#xff0c;以实现远距离传播和提高信号的清晰度和可辨识度。下面是关于水声功率放大器应用场景的详细解释&#xff1a; 水声通信&#xff1a;水声通信是一种在水下进行声波传输的技术…

电脑如何激活windows

当我们电脑出现如下图&#xff1a; 显示需要激活windows时&#xff0c;操作如下。 1、桌面-新建-文本文档 2、将文档命名为&#xff08;激活windows.bat&#xff09;把原有文档中的后缀.txt去掉 3、点击右键&#xff0c;选择编辑输入代码 slmgr/skms kms.03k.org slmgr/ato4、…