目录

Spring-Boot-项目零风险升级-Tomcat-指南锁定版本也能修复漏洞

目录

Spring Boot 项目零风险升级 Tomcat 指南:锁定版本也能修复漏洞

[【安全圈】Apache Tomcat 中的 CVE-2025-24813 漏洞导致服务器遭受 RCE 和数据泄露:立即更新|cve|应用程序|apache|tomcat_网易订阅

【安全圈】Apache Tomcat 中的 CVE-2025-24813 漏洞导致服务器遭受 RCE 和数据泄露:立即更新,服务器,cve,应用程序,apache,tomcat

https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7 “【安全圈】Apache Tomcat 中的 CVE-2025-24813 漏洞导致服务器遭受 RCE 和数据泄露:立即更新|cve|应用程序|apache|tomcat_网易订阅”)

由于tomcat旧版本存在漏洞,需要升级,大致版本情况如下图所示,有兴趣的可以看下网易的原文。

https://i-blog.csdnimg.cn/direct/c597940a6d554f34ad68006914cab4a6.png

由于历史原因,项目使用JDK8,springboot版本2.7.18,已经是2.7.x版本下的最新版本,无法通过升级springboot的方式来升级tomcat版本。

https://i-blog.csdnimg.cn/direct/d7ebd6cd35b94f18b4f8e1a8e5c2988d.png

目前的tomcat版本为springboot2.7.18内置的9.0.83版本,为了避免出现安全漏洞,至少要升级到9.0.99。

https://i-blog.csdnimg.cn/direct/b105fc0c01aa4a8f8ba3d8764ebbbd70.png

查阅了很多资料以后,建议的做法是在根pom.xml文件下( 这里注意要在根pom.xm文件下修改 ),添加如下代码,会自动覆盖tomcat的版本,然而试过之后并没有成功,重新启动服务后,tomcat版本仍然是9.0.83。

<properties>
    <tomcat.version>9.0.102</tomcat.version>
</properties>

于是尝试显示引入新版本tomcat的方式来更新,代码如下。

            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-core</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-websocket</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-el</artifactId>
                <version>${tomcat.version}</version>
            </dependency>

这里有一个 误区,就是引入新版本的tomcat,要先在旧版本的spring-boot-starter-web中移除旧的tomcat。 笔者在这里浪费了很多时间,尝试了在不同的依赖层级排除掉旧版本的tomcat,重启后一直报错。

后来又查阅了一些资料,加上不断尝试,终于在不排除旧版本的情况下,直接引入新版本,成功升级tomcat版本。查看是否成功可以使用以下命令查看mvn结构树。

mvn dependency:tree | grep tomcat-embed

https://i-blog.csdnimg.cn/direct/3180abe28b034d4c8f02ae1c0eb76c63.png

如果有遇到和我同样问题的朋友,可以尝试下这个解决思路。