정류 방식의 취약점을 포함하는 아파치 톰캣 파일에 봄 부팅 웹 프로젝트 (CVE-2020-1938)입니다

배경

2020 년 1 월 6, 플랫폼을 공유하는 국가 정보 보안 취약점 (CNVD는) 베이징 과학 기술 유한 회사에 의해 발견 아파치 톰캣 파일에 포함될 취약점에 제출 파빌리온 포함 (CNVD-2020-10487을 해당 CVE-2,020에서 1,938 사이). 이 취약점을 악용 한 공격자는 인증되지 않은 원격의 경우 특정 디렉토리에 임의의 파일을 읽을 수 있습니다. 현재, 취약점 세부 사항은 제조자가 버그 수정 완료의 새 버전을 출시했습니다, 공개되지 않았다.

특정주의 사항 : HTTPS : //www.cnvd.org.cn/webin ...

방법 대응 스프링 부팅

당신은 외부 바람둥이 참조 게시판에 해당하는 방법을 사용하는 경우.

당신이 내장 springboot 바람둥이를 사용하여 수동으로 AJP 프로토콜을 열 경우, 당신은 바람둥이의 내장 버전을 업그레이드해야합니다.

수동으로 AJP를 열지 않았다 (기본 내장 Tomcat을 사용) springboot 경우에, 당신은 바람둥이의 내장 버전을 업그레이드 할 수 없습니다. 물론, 업그레이드 할도 사용할 수 있습니다.

개방 방법을 AJP springboot

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;
}

지정하는 방법을 springboot 내장 된 톰캣의 버전

당신의 springboot 프로젝트는 AJP를 연 경우에, 당신은 통지 이상에 지정된 내장 바람둥이 버전으로 업그레이드해야합니다.
예를 들면 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-포함 - 엘, 바람둥이-주석-API와 바람둥이 - 포함 - 웹 소켓 네 의존성은, 사실, 특정 프로젝트 종속성을 기반으로 업그레이드 된 버전이어야한다

출시 사 원저 · 원 찬양 한 · 전망 2543

추천

출처blog.csdn.net/baidu_38981831/article/details/104648792