01 SOP基本信息
-
SOP名称:Apache Tomcat远程代码执行漏洞(CVE-2025-24813)处置标准作业程序(SOP)
-
版本:1.0
-
发布日期:2025-03-12
-
作者:just4fun
-
审核人:T小组
-
修订记录:
-
初始版本:创建SOP
02 SOP的用途
本SOP旨在指导系统管理员安全、高效地处置 Apache Tomcat 远程代码执行漏洞(CVE-2025-24813),确保在规定时间内完成漏洞修复并提交给安全部门验证,保障系统安全。
03 SOP的目标用户技能要求
-
熟悉 Apache Tomcat 配置和管理
-
了解基本的系统管理和更新操作
-
具备基本的网络安全知识
04 漏洞详细信息
-
漏洞名称:Apache Tomcat远程代码执行漏洞
-
CVE编号:CVE-2025-24813
-
漏洞类型:远程代码执行漏洞
-
风险等级:高
-
CVSS评分:8.1
-
漏洞描述:由于Tomcat DefaultServlet 处理 partial PUT 请求(基于 `Content-Range` 头的 HTTP PUT 请求)时对临时文件命名逻辑问题,导致可以通过构造特殊的请求路径来获取安全配置文件中的凭据密钥,或执行恶意代码。
-
影响范围:
-
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
-
漏洞利用条件:
a. 满足以下条件,攻击者可以访问或修改安全敏感文件:
- DefaultServlet 启用了写入权限(默认情况下禁用)。
- 服务器启用了partial PUT(默认启用)。
- 该敏感文件存放在允许上传的目录的子路径(攻击者需要能够在该敏感文件目录上级路径使用 partial PUT 上传文件)
- 攻击者已知目标敏感文件的路径以及文件名。
- 敏感文件是通过partial PUT 上传的。
b. 满足以下条件,攻击者可以远程代码执行(RCE):
- DefaultServlet 启用了写入权限(默认情况下禁用)。
- 服务器启用了 partial PUT(默认启用)。
- Tomcat 使用了基于文件的 Session 持久化机制(非默认配置,默认为基于内存持久化),且存储位置为默认路径。
- 应用程序包含可利用的反序列化漏洞库(如 Commons-Collections)。
05 漏洞处置方案
-
升级到安全版本:
-
Apache Tomcat >=11.0.3
-
Apache Tomcat >=10.1.35
-
Apache Tomcat >=9.0.99
-
临时缓解方案:
-
禁止partial PUT:在 conf/web.xml 中修改 allowPartialPut 参数为false,并重启 Tomcat 以使配置生效。
-
严格控制 DefaultServlet 写入权限:确保 readonly=true,禁用所有未经授权的 PUT/DELETE 请求,仅允许可信来源访问受限目录。
-
审查依赖库:移除或更新存在反序列化漏洞的第三方库(如commons-collections等)。
【注意事项】
-
在应用补丁或升级版本之前,请确保进行充分的备份。
-
遵循官方提供的安装和配置指南进行操作。
-
在生产环境中升级前,最好在测试环境中先进行测试。
-
修复漏洞前进行充分测试,以确保系统稳定性和安全性。
-
不同版本系列尽量升级到本系列版本无漏洞的版本,尽量不要版本跨度太大,避免出现一些不兼容情况。
06 漏洞修补详细步骤
以下是具体可操作的详细修复步骤参考:
1. 识别漏洞:确认当前版本和配置存在漏洞
以Windows Server 2016为例,tomcat安装路径为C:UserstestDesktopapache-tomcat-9.0.98-windows-x64apache-tomcat-9.0.98。
第一步是检查是否安装了漏洞版本。
假设用户已经安装了tomcat 9.0.98(漏洞版本),在tomcat安装目录的bin目录中,按着Shift + 鼠标右键,选择在此处打开命令行窗口,在弹出的窗口中输入version.bat(Linux运行version.sh),显示当前已安装的版本。
第二步是检查confweb.xml文件中是否开启了PUT方法。
打开tomcat安装目录下的conf目录下的web.xml文件,看org.apache.catalina.servlets.DefaultServlet处readonly是否设置成了false。
若以上前两步均满足,则漏洞存在。
第三步是检查使用了基于文件的 Session 持久化机制(非默认配置,默认为基于内存持久化),且存储位置为默认路径。
具体是在tomcat安装目录下的conf目录下的context.xml文件,存在如下配置。
第四步是检查使用了存在反序列化利用链的jar包。
具体是在tomcat安装目录下的lib目录下的jar文件中存在例如commons-beanutils-1.9.4.jar等。
若以上四步均满足,则可进行远程代码执行,危害极大。
2. 实施修复:目标是安装Apache Tomcat 安全版本。
确认Windows版本:确认Windows系统是32位还是64位,可以在“我的电脑”或“此电脑”的属性中查看。
打开浏览器,访问官网下载链接(https://tomcat.apache.org/download-90.cgi),下拉找到最新版本(当前为9.0.102),点击zip链接进行下载。
然后根据系统版本下载64位或32位的。因环境为64位系统,下载文件为apache-tomcat-9.0.102-windows-x64.zip,将其解压缩即可使用。
3. 验证修复:已升级至版本9.0.102
在tomcat安装目录的bin目录中,按着Shift + 鼠标右键,选择在此处打开命令行窗口,在弹出的窗口中输入version.bat(Linux运行version.sh),显示当前安装的版本号为9.0.102, 符合预期,证明当前漏洞已经修复。
参考链接:
[1] Apache官方公告
[2] CVE-2025-24813详情
- End -
欢迎投稿或扫码添加运营助手获取附件▽
欢迎关注公众号
▽
原文始发于微信公众号(方桥安全漏洞防治中心):【漏洞处置SOP】Apache Tomcat远程代码执行漏洞(CVE-2025-24813)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论