【安全圈】Apache Tomcat 中的 CVE-2025-24813 漏洞导致服务器遭受 RCE 和数据泄露:立即更新|cve|应用程序|apache|tomcat_网易订阅【安全圈】Apache Tomcat 中的 CVE-2025-24813 漏洞导致服务器遭受 RCE 和数据泄露:立即更新,服务器,cve,应用程序,apache,tomcathttps://www.163.com/dy/article/JQD3SBQH0511A5GF.html

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

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

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

查阅了很多资料以后,建议的做法是在根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

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐