spring boot 修复 Spring Framework URL解析不当漏洞(CVE-2024-22243)

UriComponentsBuilder 拼接URL、解析URL 前言 关于URI参考这里。 springboot 2.1.1.RELEASE UriComponentsBuilder UriComponentsBuilder 是UriBuilder的实现。针对Servlet,还派生出来ServletUriComponentsBuilder。 使用过UriComponentsBuilder 的都知道,很好用 快速来个示例 String url = UriComponentsBuilder.fromUriString("http://mydomain/api/ge 阅读详情

漏洞描述

当应用程序使用UriComponentsBuilder来解析外部提供的URL(如通过查询参数)并对解析的URL的主机执行验证检查时可能容易受到Open重定向攻击和SSRF攻击,导致网络钓鱼和内部网络探测等。

受影响产品或系统

6.1.0 <= Spring Framework <= 6.1.3

6.0.0 <= Spring Framework <= 6.0.16

5.3.0 <= Spring Framework <= 5.3.31

官方建议修复方案

Spring Framework 版本6.1.x 用户:升级到 6.1.4

Spring Framework 版本6.0.x 用户:升级到 6.0.17

Spring  Framework 版本5.3.x 用户:升级到 5.3.32

其它已经不受官方支持的版本(5.1.x,5.2.x)同样受到影响,更新到受官方支持的安全版本。

那么springboot项目我们该怎么修复该漏洞呢?

如果现有项目的大版本是3.x,直接升级到最新版本即可,但是有些老项目还停留在2.x的版本,官方并没有针对2.x发布新版本,从2.x直接升级到3.x,代价又比较大。

一开始我们尝试直接替换spring-web的版本,但是只替换这一个包的话项目启动会报错,通过实践和反复尝试,我们对spring相关的jar包都进行了覆盖,这样可以保持springboot的版本号不变。具体覆盖的jar包如下:

         <!-- spring-web 相关 begin -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jcl</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>5.3.32</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.3.32</version>
        </dependency>
        <!-- spring-web相关 end -->

只需要将上述依赖添加到pom.xml文件中即可覆盖springboot默认的版本,替换后效果如下:

项目启动正常

如果启动后访问接口报错,需要更换跨域配置,将corsConfiguration.addAllowedOrigin("*")替换为corsConfiguration.addAllowedOriginPattern("*");

好了,上面的操作都完成后,漏洞就修复了,接下来有需要的话可以慢慢的升级到大版本!

Spring Framework URL解析漏洞CVE-2024-22243修复实战与安全升级指南 URL解析是Web应用安全的基础环节,其核心原理涉及对用户输入的统一资源定位符进行标准化处理与组件提取,以确保请求路径、查询参数和主机名的正确识别。不当的解析逻辑可能导致安全校验被绕过,引发重定向劫持或应用逻辑错误等风险,这在金融、电商等高敏感业务场景中尤为关键。Spring Framework作为广泛使用的Java开发框架,其内置的UriComponentsBuilder等工具类提供了便捷的URL处理能力。近期披露的CVE-2024-22243漏洞正源于该框架在特定版本中对包含特殊字符(如“@”符号)的U 阅读详情

相关推荐

Spring Framework漏洞CVE-2024-22243修复实战:从原理到安全升级

服务端请求伪造(SSRF)是一种常见的安全威胁,攻击者通过操纵应用发起的请求,访问或攻击内部系统。其原理在于应用未对用户可控的URL输入进行充分验证与过滤,导致可被利用构造恶意请求。在Java生态中,Spring Framework作为核心开发框架,其内置的URL解析组件(如UriComponentsBuilder)是处理此类请求的关键。若该组件存在解析逻辑缺陷,则可能引发SSRF或安全绕过风险,直接影响应用安全边界。近期披露的CVE-2024-22243正是此类漏洞,涉及Spring Framework特

weixin_32466193的博客 365

关于Spring Framework URL解析不当漏洞(CVE-2024-22243)的安全预警

真正的爱情是不要教他技巧,就笨一点挺好,就算有失败,表白错误,或者是被表白错误都挺正常的,教多了过分替对方着想,这不是爱,这是技巧。 真爱是不需要技巧的,家庭生活需要技巧,但真爱不需要,本身就是爱的探索过程,事后回忆起来也挺美好。我只告诉他最基本的原则就够了,相互不伤害。

IT小辉同学 2140

Spring Framework UriComponentsBuilder URL解析不当漏洞复现(CVE-2024-22243)

Spring Web UriComponentsBuilder URL解析不当漏洞复现(CVE-2024-22243)

m0_50797689的博客 3022

『CVE』简析CVE-2024-22243:SpringFrameworkURLParsingwithHostValidation及其绕过:CVE-2024-22259

解析外部提供的 URL(例如,通过查询参数)并且在解析的 URL 的主机上执行验证检查的应用程序可能容易受到开放重定向攻击,或者在通过验证检查后使用该 URL 时容易受到 SSRF 攻击。观察可以发现其实让userInfo匹配为“空”还有一个办法,星号可以匹配0次,所以可以在//后面之间跟一个@,这样userInfo匹配到的就是"",因为这里匹配的是第一个@前。因为第四个分组匹配到null,所以下一个分组从//后,继续匹配第五个分组,也就是匹配host。userInfo是第四个分组,是第三个分组的子组。

Ho1aAs‘s Blog 3016

Spring Framework UriComponentsBuilder URL解析不当漏洞复现(CVE-2024-22259)

Spring Framework UriComponentsBuilder URL解析不当漏洞复现(CVE-2024-22259)

m0_50797689的博客 2242

气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型

本文通过建立不同类型干旱传播过程的触发阈值模型,解析了在不同等级气象干旱胁迫下诱发次一级干旱类型的触发阈值。通过贝叶斯概率模型,我们推导了气象干旱与水文干旱、农业干旱、地下水干旱之间的条件概率关系,进一步明确了气象干旱引发水文干旱、农业干旱和地下水干旱的概率及其触发阈值。该模型有效揭示了气象干旱对各级干旱类型的传播机制及其动态变化,为干旱预警系统的建立和水资源管理提供了理论依据和技术支持。

frankgis的博客 2502

Spring Boot安全漏洞CVE-2024-22243:URL编码分号解析不当的修复指南

URL解析是Web应用安全的基础环节,它涉及将用户输入的URL转换为服务器可识别的路径和参数。其核心原理包括解码、路径标准化和模式匹配,确保请求能正确路由到对应的处理器。在Spring框架中,URL解析的准确性直接影响路由分发、权限校验和参数绑定等关键功能。当解析逻辑存在缺陷时,可能导致安全边界模糊,例如攻击者利用编码分号(%3B)绕过路径校验或引发服务端请求伪造(SSRF)。CVE-2024-22243正是Spring Framework在处理编码分号时出现的解析不一致漏洞,影响多个版本。本文从该漏洞切入

weixin_34168880的博客 386

ST7102驱动移植与调试实战

本文详细介绍了在君正T40平台上移植和调试ST7102 LCD驱动芯片的实战经验。内容涵盖硬件接口配置、时序参数调整、寄存器初始化序列编写及常见问题解决,重点解析了ST7102单芯片集成显示与触控功能的特性,为嵌入式设备显示驱动开发提供实用指南。

k6l7m8n9的博客 1410

spring 升级记录

我使用的了spring 6.1.6,使用框架是springboot + mybatis,然后被扫出了下面两个漏洞:(1)Spring Web UriComponentsBuilder URL解析不当漏洞(CVE-2024-22243)(2)Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)解决方案就是升级spring,下面记录一下升级过程。

u013015301的博客 288

EB tresos配置指南:CAN通信信号收发全流程解析

本文详细解析了使用EB tresos配置工具实现AUTOSAR架构下CAN通信信号收发功能的全流程。从环境准备、COM模块信号定义、PduR路由配置、CanIf硬件抽象到CAN驱动层设置,提供了清晰的步骤指南和关键配置要点,帮助开发者快速打通从应用层到物理层的数据链路,实现可靠的CAN通信。

weixin_29192141的博客 507

【Bug已解决】Codex 报错 MCP client for context7 failed to start: program not found 解决方案

方案适用场景推荐指数改用绝对路径Windows 上最常见、最有效的解决方式⭐⭐⭐⭐⭐提前全局安装避免依赖 npx减少运行时网络下载的不确定性⭐⭐⭐⭐使用 .cmd 后缀Windows 平台快速尝试⭐⭐⭐⭐开启调试日志需要更精确定位失败原因⭐⭐⭐⭐统一封装启动脚本需要跨平台兼容多个 MCP 服务⭐⭐⭐报错的本质是Codex 启动 MCP 子进程时,无法正确定位配置文件中写的简写命令名对应的可执行文件,尤其容易发生在 Windows 平台上使用npx这类简写命令的场景。

一键难忘的博客 5814

Spring Boot 2.7.18 是最后的版本?EOL 真相、CVE 与迁移实战

软件生命周期管理是很多团队容易忽略的底层能力,尤其当框架进入 EOL(End of Life)阶段后,“最新版本”往往并不等于“安全版本”。以 Spring Boot 2.7.18 为例,它在 2023 年 11 月停更后,官方不再提供公开补丁,但大量存量项目仍停留在该版本线上,甚至误以为它是修复了所有已知问题的最终安全版。事实上,Spring Framework 在 5.3.31 之后又暴露了 URL 解析、路径规范化等多项 CVE,而 2.7.18 无法覆盖这些修复。理解依赖管理 BOM 的作用,以及

weixin_33462927的博客 221

51单片机+L298驱动步进电机+L297测速+LCD1602显示+按键调试+Proteus仿真

51单片机+L298驱动步进电机+L297测速+LCD1602显示+按键调试+Proteus仿真 *Proteus仿真 L298N是双H桥式驱动器。 L297是步进电机控制集成芯片(包括环形分配器),可产生四相驱动信号,应用于微处理机控制两相双极性和四相单极性步进电机。电动机可由半阶梯、正常和斩波驱动模式驱动,同时设于晶片内的PWM斩波线路容许以开关形式控制线路的电流。此器件只需要时钟、方向和模式输入信号。相位是由内部产生的,因此可减轻微处理机和程序设计的负担。 实例代码 /************

perseverance51博客 4584

Spring Boot 2.7.18被报漏洞?本质是版本停更与依赖老化

软件生命周期中,版本号被安全报告标记为“存在漏洞”通常有两种可能:一是确实存在待修复的缺陷,二是版本已停止维护。后者正是Spring Boot 2.7.18频繁出现在漏洞报告中的根本原因——作为2.7版本线最后一个开源发布,它不再获得官方社区补丁。而Spring Boot作为依赖的“组装者”,其安全性深受底层Spring Framework、Tomcat、Jackson等组件影响。当版本停更叠加依赖树老化,就形成了看似“Spring Boot漏洞”、实为“复合安全债”的局面。要应对这类风险,团队需要掌握从依

weixin_30843121的博客 232

基于STM32的智能快递柜设计(全部资料)

本文设计了一种基于STM32F407ZGT6的智能快递柜系统,通过模块化硬件设计和软件算法优化,实现了24小时无人值守、温湿度智能调控、远程监控等功能。系统集成OLED显示、GSM通信、舵机控制、超声波检测等模块,存取响应时间≤3秒,识别准确率达99.2%,较传统模式效率提升60%。测试表明系统运行稳定,用户满意度达92%,具有成本低、安全性高、可扩展性强等特点,为智慧物流末端配送提供了创新解决方案。未来可引入AI算法、太阳能供电等功能进一步优化系统性能。

3254968421的博客 584

机器学习实战26-一种基于LightGBM的股市涨跌预测系统与代码实现过程

在全球经济一体化的背景下,股市作为经济活动的晴雨表,其波动与预测对于投资者、金融机构乃至国家政策制定者而言至关重要。随着金融市场的日益复杂化与信息量的爆炸式增长,股市分析不再仅限于基本面和技术面的传统研究,而是迫切需要更加精准、高效及智能化的方法来捕捉市场动态,以辅助决策制定。模型评估是确保LightGBM股市预测系统准确性和稳定性不可或缺的一环。通过综合运用多种评估指标、科学的验证方法以及深入的性能分析,我们不仅能够全面理解模型的能力和限制,还能为持续优化模型、提升预测准确性奠定坚实基础。

微学AI的博客 2327

Spring Boot 2.7.x漏洞盘点与升级修复实战指南

软件安全的核心在于对依赖组件进行持续的版本管理与风险跟踪,CVE公告则是评估漏洞影响的关键依据。Spring Boot作为Java应用最常用的集成框架,其2.7.x版本在停止维护后,如何判断安全风险并制定修复策略成为许多团队的痛点。本文从漏洞影响评估的基本维度出发,系统梳理2.7.x系列中RCE、授权绕过、拒绝服务等典型CVE的原理与利用条件,并结合依赖树排查、OWASP Dependency-Check等工程手段,给出升级到2.7.18或通过版本覆盖缓解风险的实操路径。内容覆盖Spring Framewo

weixin_32288959的博客 237

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5553

Spring Web UriComponentsBuilder URL解析不当漏洞(CVE-2024-22243)

allowedOriginPatterns("*") 得替换成他。springboot 版本2.x 的 解决 办法。指定framework 版本 需要注意的是 跨域。在properties下 加。

hxnwdcbb的博客 1433

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring Web UriComponentsBuilder URL解析不当漏洞(CVE-2024-22243)解决办法

升级spring-web包的版本即可。

qq_65583532的博客 885

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

XXL-JOB安全漏洞CVE-2024-22243分析与解决方案

XXL-JOB安全漏洞CVE-2024-22243分析与解决方案 【免费下载链接】xxl-job XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 ...

gitblog_01404的博客 538

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring Web URL 解析常见错误

然而,从现实情况来看,在使用上,我们更多地是使用 Spring 来构建一个 Web 服务,所以从这节课开始,我们会重点解析在 Spring Web 开发中经常遇到的一些错误,帮助你规避这些问题。3. 任何一个参数,我们都需要考虑它是可选的还是必须的。很明显,若要判定一个参数是否是必须的,需要同时满足两个条件:条件 1 是 @RequestParam 指明了必须(即属性 required 为 true,实际上它也是默认值),条件 2 是要求 @RequestParam 标记的参数本身不是可选的。

xiaoshitou_2015的博客 2046

关于Spring Web UriComponentsBuilder URL解析不当漏洞的公告

当应用程序使用UriComponentsBuilder来解析外部提供的URL(如通过查询参数)并对解析的URL的主机执行验证检查时可能容易受到Open重定向攻击和SSRF攻击,导致网络钓鱼和内部网络探测等。打开产品的根pom文件,在dependencyManagement标签中锁定spring-web依赖的版本为5.3.32即可。其它已经不受官方支持的版本(5.1.x,5.2.x)同样受到影响,更新到受官方支持的安全版本。额度V9.3.1_beta;押品V9.3.1_beta。

SUPER5266的博客 809

URL 解析与鉴权中的陷阱 —— Spring 篇

相比于传统的 JavaEE Web 应用,Spring 基于全匹配的 DispatcherServlet 实现了一套应用层的路由方案,并且在依赖注入的加持下使得业务开发和配置变得更加方便。这一套路由方案屏蔽了底层 Servlet 容器的解析差异,但同时也引入了 Spring 特有的解析陷阱。

有价值炮灰 781

springboot2.x升级到3.x实战经验总结

随着Spring Framework URL解析不当漏洞(CVE-2024-22243)的发布,springboot升级到3.x迫在眉睫,2.x的版本官方并未提供该漏洞的修复版本,后续应该也不会再发布新的版本。2.x升级到3.x是一次大的跨越,接下来,本人结合实践经验,浅淡一下需要注重的地方。

记录点滴 3万+
上一篇: java Concurrent 线程安全的集合类
下一篇: easypoi导出excel在苹果端微信内打不开问题解决
咚咚阳丶
博客等级 码龄15年 1968粉丝 91原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值