SpringBoot漏洞!Apache Tomcat有信息泄露风险(附解决方案)

Apache Tomcat信息泄露漏洞(CVE-2024-21733)


背景:


Apache Tomcat 是一个流行的开源 Web 服务器和 JavaServlet 容器。Coyote 是 Tomcat 的连接器组件

漏洞详细内容:

攻击者可以通过构造特定请求,在异常页面中输出其他请求的 body 数据,从而造成信息泄露。Apache Tomcat 对于不完整的 POST 请求会触发错误响应,由于Tomcat 连接器组件 Coyote在抛出异常后没有重置缓冲区位置和限制,攻击者可发送不完整的 POST 请求触发错误响应,从而可能导致获取其他用户先前请求的数据,造成信息泄露。该漏洞编号为 CVE-2024-21733


影响版本:

Apache Tomcat 9.0.0-M11 至 9.0.43 Apache Tomcat 8.5.7 至 8.5.63


处理方式:

目前该漏洞已经修复,受影响用户可升级到以下版本: Apache Tomcat >= 9.0.44 Apache Tomcat >= 8.5.64 下载链接: https://tomcat.apache.org/index.html

基于SpringBoot的项目处理方式:

由于Spring Boot 默认嵌入了 Tomcat 作为其内置的应用服务器,并且包含了 tomcat-coyote 的依赖

1. 首先检查spring-boot-starter-web依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.2.7.RELEASE</version>
    <scope>compile</scope>
</dependency>
2.切换成依赖分析

3. 搜索tomcat

确认当前版本的spring-boot-starter-web依赖内置的tomcat版本为9.0.34,属于存在漏洞的版本

4. 排除掉spring-boot-starter-web依赖中内置的tomcat

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.2.7.RELEASE</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.tomcat.embed</groupId>
                    <artifactId>tomcat-embed-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.tomcat.embed</groupId>
                    <artifactId>tomcat-embed-el</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.tomcat.embed</groupId>
                    <artifactId>tomcat-embed-websocket</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>tomcat-annotations-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

5. 引入tomcat依赖 

自己引入高版本的tomcat,如果之前用的tomcat8,要升级到8.5.64版本及以上,如果之前用的tomcat9,要升级到9.0.44版本及以上,我这里升级到了9.0.45(我的原则是能不多升,就不多升,各位看官自己选择)

<properties>
    <tomcat.version>9.0.45</tomcat.version>
</properties>

<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-core</artifactId>
   <version>${tomcat.version}</version>
   <exclusions>
      <exclusion>
         <groupId>org.apache.tomcat</groupId>
         <artifactId>tomcat-annotations-api</artifactId>
      </exclusion>
   </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-annotations-api</artifactId>
    <version>${tomcat.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-el</artifactId>
    <version>${tomcat.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-websocket</artifactId>
    <version>${tomcat.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

6. 最后转圈圈

7. 检查版本同上

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值