2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938)。攻击者利用该漏洞,可在未受权的状况下远程读取特定目录下的任意文件。目前,漏洞细节还没有公开,厂商已发布新版本完成漏洞修复。web
具体公告:https://www.cnvd.org.cn/webin...spring
若是使用的是外置tomcat,参考公告中的对应方法便可。apache
若是使用的是springboot的内置tomcat,且手动开启了AJP协议,则须要升级内置tomcat版本。tomcat
若是你的springboot(使用默认内置tomcat)并无手动开启AJP,那么你能够不升级tomcat内置版本。固然你想升级也能够。安全
springboot默认不启用AJP,若是须要开启,则须要手动配置,以springboot2为例:springboot
@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项目开启了AJP,那么你须要升级内置tomcat版本到公告中指明的版本或以上。
示例:websocket
<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.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>9.0.31</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> <version>9.0.31</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-websocket</artifactId> <version>9.0.31</version> <exclusions> <exclusion> <artifactId>tomcat-embed-core</artifactId> <groupId>org.apache.tomcat.embed</groupId> </exclusion> </exclusions> </dependency>
这里列出了tomcat-embed-core,tomcat-embed-el和tomcat-embed-websocket这三个依赖包,实际上应该根据你的具体项目中的依赖来升级版本socket