У Tomcat есть дыра в безопасности! Затрагиваются несколько версий среды Spring Cloud/Boot.

Spring Boot

Введение. Недавно Apache Tomcat взломал уязвимость отказа в обслуживании HTTP/2, и несколько версий платформы Spring Cloud/Boot подверглись атаке. В этой статье приводится список уязвимых версий платформы и перечислены планы обновления, которые помогут вам избежать воздействия этой уязвимости.

фон события

25 июня официальная группа безопасности Apache публично сообщила об уязвимости высокой степени опасности по электронной почте, в которой были представлены подробности и решения уязвимости отказа в обслуживании HTTP/2. Как показано ниже:

Ссылка на детали уязвимости:Купил - archives.apache.org/feel_pulse/ask…

перевести

  • Название уязвимости: Уязвимость отказа в обслуживании Apache Tomcat HTTP/2
  • № уязвимости: CVE-2020-11996
  • Серьезность: важно
  • Поставщик программного обеспечения: Apache Software Foundation
  • Затронутые версии:
    • 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-запросов может вызвать полную загрузку процессора всего за несколько секунд, при одновременном подключении к серверу достаточного количества таких запросов (HTTP/2) сервер может потерять ответ.

Если позволяют условия, уязвимость можно устранить путем обновления до новой версии 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] версия затронута.

Spring Boot [2.0.0.RELEASE - 2.0.9.RELEASE] версия затронута.


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>

Добро пожаловать, чтобы отсканировать код, чтобы подписаться на нашу общедоступную учетную запись WeChat, и с нетерпением ждем встречи с вами ~

В официальном аккаунте время от времени проводятся раздачи книг и лотереи (кукла Tencent / T 桖), приходите и следите за нами и добавляйте промежуточное ПО Xiao Qmei WeChat