整流方式の脆弱性(CVE-2020から1938)を含むされたApache Tomcatファイルの春ブーツWebプロジェクト

背景

2020年1月6日には、プラットフォーム(CNVD)を共有する国家情報セキュリティの脆弱性は、パビリオンは、北京科学技術有限公司によって発見され、Apache Tomcatのファイルインクルージョンの脆弱性(CNVD-2020から10487、対応するCVE-2020から1938)に提出含まれています。脆弱性を悪用し、攻撃者は不正なリモートの場合、特定のディレクトリに任意のファイルを読み取ることができます。現時点では、脆弱性の詳細はメーカーがバグ修正の完了の新バージョンをリリースしました、明らかにされていません。

具体的な注意事項:HTTPS://www.cnvd.org.cn/webin ...

春ブーツ対応する方法

あなたは、外部のTomcat、リファレンス・ノートへの対応方法を使用している場合。

あなたが構築されspringbootのTomcatを使用して、手動でAJPプロトコルを開いている場合は、ビルトインのTomcatのバージョンにアップグレードする必要があります。

手動でAJPを開けませんでした(デフォルトの内蔵Tomcatを使用して)springboot場合、あなたは、Tomcatの組み込みのバージョンをアップグレードすることはできません。もちろん、あなたがアップグレードすることも可能です。

springboot openメソッドAJP

springbootを開く必要がある場合、あなたはspringboot2例を手動で設定する必要があり、デフォルトのAJPで有効になっていません。

@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> servletContainer() {
  return server -> {
    if (server instanceof TomcatServletWebServerFactory) {
        ((TomcatServletWebServerFactory) server).addAdditionalTomcatConnectors(redirectConnector());
    }
  };
}

private Connector redirectConnector() {
   Connector connector = new Connector("AJP/1.3");
   connector.setScheme("http");
   connector.setPort(ajpPort);
   connector.setSecure(false);
   connector.setAllowTrace(false);
   return connector;
}

ビルトインのTomcatのバージョンを指定する方法springboot

あなたのspringbootプロジェクトはAJPを開いた場合は、通知に指定された以上、組み込みTomcatのバージョンにアップグレードする必要があります。
例としては、8.5.51にアップグレードします。

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

ここでは、リストのtomcat-埋め込むコア、tomcatの-埋め込む-EL、tomcatの-注釈-APIとTomcat-埋め込む-のWebSocketは、4つの依存関係で、実際には、あなたの特定のプロジェクトの依存関係に基づいて、アップグレードされたバージョンでなければなりません

リリース元の4件の記事 ウォンの賞賛1 ビュー2543

おすすめ

転載: blog.csdn.net/baidu_38981831/article/details/104648792