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妹微信吧

相關文章
相關標籤/搜索