You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于确认CVE-2025-24813是否适用于Spring Boot应用的技术咨询

确认CVE-2025-24813是否适用于Spring Boot应用的技术咨询

先给大家明确一下:CVE-2025-24813是Apache Tomcat里的一个高危远程代码执行(RCE)漏洞,常规的检查思路是查看Tomcat的web.xml文件配置,但咱们Spring Boot应用打包成jar后确实没有这个文件,那该怎么排查呢?我给你梳理几个关键方向:

  • 检查Spring Boot配置文件
    Spring Boot默认会把Tomcat的DefaultServlet的readonly属性设为true(也就是禁止写入操作),这是安全的。但如果你手动修改过相关配置,就需要检查:

    • 在application.properties里,看看有没有server.tomcat.default-servlet.readonly=false这样的配置;
    • 在application.yml里,检查是否有如下配置:
      server:
        tomcat:
          default-servlet:
            readonly: false
      

    如果存在上述配置,且你的Tomcat版本在受影响范围内,就有风险。

  • 排查自定义Tomcat配置代码
    要是你通过代码定制过Tomcat的行为,比如实现了WebServerFactoryCustomizer<TomcatServletWebServerFactory>,就得检查有没有修改DefaultServlet的readonly属性。比如下面这种代码就会把权限改成允许写入:

    @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> tomcatCustomizer() {
        return factory -> {
            factory.addContextCustomizers(context -> {
                DefaultServlet defaultServlet = new DefaultServlet();
                defaultServlet.setReadonly(false); // 这里修改为false就存在风险
                context.addServlet("default", defaultServlet).addMapping("/");
            });
        };
    }
    
  • 确认依赖的Tomcat版本
    这个漏洞影响的Tomcat版本范围是:8.5.0至8.5.109、9.0.0.M1至9.0.89、10.1.0.M1至10.1.20、11.0.0.M1至11.0.0-M20。
    在Spring Boot里,你可以通过以下方式查看依赖的Tomcat版本:

    • Maven项目:运行mvn dependency:tree命令,在输出里找org.apache.tomcat.embed相关的依赖版本;
    • Gradle项目:运行gradle dependencies命令,查看对应的Tomcat依赖版本。
      如果版本在上述范围内,再结合前面的配置检查,就能确定是否受影响。

总的来说,Spring Boot默认配置是不会触发这个漏洞的,只有当你手动开启了DefaultServlet的写入权限,同时依赖的Tomcat版本在受影响列表里,才需要警惕。

备注:内容来源于stack exchange,提问作者serv-inc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:18:02