Apache Tomcat远程代码执行漏洞(CVE-2025-24813)

Apache Tomcat远程代码执行漏洞(CVE-2025-24813)

原创 HSCERT 山石网科安全技术研究院 2025-03-11 21:30

一、漏洞背景

3月11日,山石安研院关注到Apache Tomcat官方发布了一个安全公告,修复了一个特定条件的远程代码执行漏洞(CVE-2025-24813),通过公开的POC已经成功复现该漏洞,由于Tomcat DefaultServlet 处理 partial PUT 请求(基于 Content-Range 头的 HTTP PUT 请求)时对临时文件命名逻辑问题,导致可以通过构造特殊的请求路径来获取安全配置文件中的凭据密钥,或执行恶意代码。虽然利用条件较多,但漏洞影响还是非常广泛的,建议使用相关版本的用户尽快升级安全更新。

二、利用条件

符合以下条件时,攻击者可能利用上传恶意session文件实现RCE:

1.应用程序启用servlet写入功能(默认情况下禁用);

2.Tomcat使用基于文件的session保存机制和存储位置(默认路径);

3.Tomcat开启partial PUT(Tomcat conf/web.xml配置文件中初始化参数readonly配置为false,默认启用);

4.应用中存在反序列化利用链(如Commons-Collections 3.x)。

三、漏洞编号

CVE-2025-24813

四、危害等级

高危

五、影响版本

11.0.0-M1 <= Apache Tomcat <= 11.0.2

10.1.0-M1 <= Apache Tomcat <= 10.1.34

9.0.0.M1 <= Apache Tomcat <= 9.0.98

安全版本:

Apache Tomcat >=9.0.99

Apache Tomcat >=10.1.35

Apache Tomcat >=11.0.3

六、修复建议

目前官方已发布安全更新,对于官方已经宣布不再支持的版本尽早停用。

https://tomcat.apache.org/security-11.html

https://tomcat.apache.org/security-10.html

https://tomcat.apache.org/security-9.html

https://tomcat.apache.org/download-11.cgi

https://tomcat.apache.org/download-10.cgi

https://tomcat.apache.org/download-90.cgi

如果不能直接升级,可以通过安全配置并重启Tomcat临时解决:

1.修改/conf/web.xml将readonly false配置代码注释或移除(默认该配置为true,不受影响);

2.修改conf/web.xml将allowPartialPut 参数为false;

3.另外如果需启用文件会话持久化,修改/conf/context.xml中将session持久化保存路径设置为特定安全路径,否则将org.apache.catalina.session.PersistentManager设置为false。

七、相关链接

https://nvd.nist.gov/vuln/detail/CVE-2025-24813

https://www.openwall.com/lists/oss-security/2025/03/10/5

https://lists.apache.org/thread/j5fkjv2k477os90nczf2v9l61fb0kkgq

https://github.com/apache/tomcat/commit/f6c01d6577cf9a1e06792be47e623d36acc3b5dc