Tomcat爆出安全漏洞!Spring Cloud/Boot框架多个版本受影响

导语:近期Apache Tomcat爆出 HTTP/2 拒绝服务漏洞,Spring Cloud/Boot框架的多个版本均已中招。本文整理了受影响的框架版本列表,并列出升级方案,帮助你们避免受到该漏洞的影响。web

事件背景

6月25日, Apache 官方安全团队经过邮件公开报告了一个高危漏洞,邮件中介绍了 HTTP/2 拒绝服务漏洞的细节及解决方案。以下图所示:spring

漏洞详情连接:mail-archives.apache.org/mod_mbox/ww…apache

翻译api

  • 漏洞名称:Apache Tomcat HTTP/2 拒绝服务漏洞
  • 漏洞编号:CVE-2020-11996
  • 严重程度: 重要
  • 软件提供商: Apache 软件基金会
  • 受影响的版本:
    • Apache Tomcat 10.0.0-M1 ~ 10.0.0-M5
    • Apache Tomcat 9.0.0.M1 ~ 9.0.35
    • Apache Tomcat 8.5.0 ~ 8.5.55
  • 漏洞描述:一个特别制做的 HTTP/2 请求序列,在短短数秒内能致使 CPU 满负载率,若是有足够数量多的此类请求链接(HTTP/2)并发打在服务器上,服务器可能会失去响应。

若是条件容许,能够经过升级到Tomcat新版原本解决漏洞。下面为受影响版本对应的安全版本:tomcat

  • Apache Tomcat 10.0.0-M6+
  • Apache Tomcat 9.0.36+
  • Apache Tomcat 8.5.56+

Spring Cloud / Boot 框架影响

Apache Tomcat HTTP/2 拒绝服务漏洞也给Spring Cloud / Boot 框架带来了必定的影响。下面是全部受影响的版本列表,你们能够查看并对照下本身的代码,看看是否受到影响。安全

Spring Cloud Edgware / Spring Boot 1.5.x

Spring Cloud [Edgware.RELEASE - Edgware.SR6] 版本受到影响。服务器

Spring Boot [1.5.0.RELEASE - 1.5.22.RELEASE] 版本受到影响。微信


Spring Cloud Finchley / Spring Boot 2.0.x

Spring Cloud [Finchley.RELEASE - Finchley.SR4] 版本受到影响。websocket

Spring Boot [2.0.0.RELEASE - 2.0.9.RELEASE] 版本受到影响。markdown


Spring Cloud Greenwich / Spring Boot 2.1.x

Spring Cloud [Greenwich.RELEASE - Greenwich.SR6] 版本受到影响。

Spring Boot [2.1.0.RELEASE - 2.1.14.RELEASE] 版本受到影响。

Spring Boot [2.1.15.RELEASE] 版本已修复。


Spring Cloud Hoxton / Spring Boot 2.2.x

Spring Cloud [Hoxton.RELEASE - Hoxton.SR6] 版本受到影响。

Spring Boot [2.2.0.RELEASE - 2.2.7.RELEASE] 版本受到影响。

Spring Boot [2.2.8.RELEASE] 版本已修复。


Spring Boot 2.3.x

Spring Boot [2.3.0.RELEASE] 版本受到影响。

Spring Boot [2.3.1.RELEASE] 版本已修复。


升级方案

目前有两种升级方案能够选择:

  1. 直接升级Spring Boot版本。
  2. 手动升级Tomcat版本。

升级 Spring Cloud Edgware / Spring Boot 1.5.x

Edgware没法经过升级Spring Boot版本解决问题。

<properties>
    <tomcat-embed.version>8.5.56</tomcat-embed.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-el</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-websocket</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-annotations-api</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
复制代码

升级Spring Cloud Finchley / Spring Boot 2.0.x

Finchley没法经过升级Spring Boot版本解决问题。

<properties>
    <tomcat-embed.version>8.5.56</tomcat-embed.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-el</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-websocket</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
复制代码

升级Spring Cloud Greenwich / Spring Boot 2.1.x

升级Spring Boot

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.15.RELEASE</version>
</parent>
复制代码

升级Tomcat

<properties>
    <tomcat-embed.version>9.0.36</tomcat-embed.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-el</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-websocket</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
复制代码

升级Spring Cloud Hoxton / Spring Boot 2.2.x

升级Spring Boot

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.8.RELEASE</version>
</parent>
复制代码

升级Tomcat

<properties>
    <tomcat-embed.version>9.0.36</tomcat-embed.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-el</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-websocket</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
复制代码

升级Spring Boot 2.3.x

升级Spring Boot

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
</parent>
复制代码

升级Tomcat

<properties>
    <tomcat-embed.version>9.0.36</tomcat-embed.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-websocket</artifactId>
            <version>${tomcat-embed.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
复制代码

欢迎扫码关注咱们的微信公众号,期待与你相遇~

公众号不按期有赠书、抽奖(腾讯公仔/T桖)的活动,快来关注咱们并添加中间件小Q妹微信吧

相关文章
相关标签/搜索