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

本文介绍了SpringFramework中的Open重定向和SSRF漏洞,推荐受影响版本的用户升级至特定安全版本。对于老项目升级问题,提出通过覆盖spring-web相关jar包并调整跨域配置的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

漏洞描述

当应用程序使用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("*");

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

<think>好的,我需要帮助用户查找关于CVE-2024-43087的安全漏洞信息,包括详情、影响范围和解决方案。首先,我应该检查用户提供的引用内容,看看是否有提到这个CVE编号。用户提供了五个引用,分别对应CVE-2024-22252到CVE-2024-8114等漏洞,但CVE-2024-43087不在其中。因此,我需要确认这些引用中是否真的没有相关信息。 接下来,我应该考虑用户可能没有找到所需信息的原因。可能的情况包括:该CVE编号尚未被公开披露,或者用户提供的引用中没有包含这个特定的漏洞。根据现有信息,用户提供的引用覆盖了不同的产品,如VMware、OpenSSH、GitLab和Spring Framework,但CVE-2024-43087可能属于其他产品或服务。 然后,我需要建议用户通过权威的漏洞数据库进行查询,比如NVD、CVE官网或厂商公告。同时,提醒用户检查是否有拼写错误,因为CVE编号的准确性很重要。此外,如果漏洞较新,可能存在信息延迟,需要等待官方发布。如果用户能提供更多上下文,比如受影响的软件或厂商,可能会更有助于查找。 最后,确保回答结构清晰,符合用户的要求,使用中文,正确应用LaTeX格式,并在适当的地方添加引用标识。需要生成相关问题,帮助用户进一步探索解决方案。</think>关于CVE-2024-43087漏洞,根据您提供的引用内容,目前站内引用的5个漏洞信息中均未包含该CVE编号[^1][^2][^3][^4][^5]。以下是可能的原因及建议步骤: 1. **验证CVE编号准确性** 请检查CVE编号$CVE-2024-43087$是否输入正确,例如: - 是否存在字符错位(如将"L"误写为"1") - 是否混淆了漏洞年份和序列号(例如2023年与2024年) 2. **通过官方渠道查询** 建议访问以下权威漏洞数据库: - 美国国家漏洞数据库(NVD):$$https://nvd.nist.gov/$$ - CVE官方网站:$$https://cve.mitre.org/$$ - 厂商安全公告(如涉及特定产品) 3. **可能情况分析** - **未公开漏洞**:若为2024年新披露漏洞,可能存在信息同步延迟(NVD平均更新延迟约2-15天)[^3] - **非高危漏洞**:中低危漏洞可能未收录在紧急通告中[^2] - **厂商特定漏洞**:需确认受影响产品范围(如VMware、GitLab等厂商漏洞有独立披露机制) 4. **临时防护建议** 在等待漏洞确认期间,可采取通用防护措施: ```bash # 保持系统更新 sudo apt update && sudo apt upgrade -y ``` 同时建议启用$WAF$(Web应用防火墙)和$IDS/IPS$(入侵检测/防御系统)[^
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值