Dhananjayasj/CVE-2025-24813-Apache-Tomcat-Partial-PUT-Deserialization-RCE-
GitHub: Dhananjayasj/CVE-2025-24813-Apache-Tomcat-Partial-PUT-Deserialization-RCE-
该项目复现并验证了 Apache Tomcat CVE-2025-24813 漏洞,利用 Partial PUT 写入恶意序列化对象并经 session 反序列化触发远程代码执行。
Stars: 0 | Forks: 0
# CVE-2025-24813 - Apache Tomcat Partial PUT + 反序列化 RCE
[](https://nvd.nist.gov/vuln/detail/CVE-2025-24813)
[](https://tomcat.apache.org/)
[](LICENSE)
## 📋 概述
CVE-2025-24813 是 Apache Tomcat 中的一个高危漏洞,当满足以下三个条件时,允许**未授权的远程代码执行**:
1. 默认 servlet 启用了写权限(`readonly=false`)。
2. 启用了 Partial PUT 支持(默认)。
3. 配置了基于文件的 session 持久化(带 `FileStore` 的 `PersistentManager`)。
攻击者可以通过**Partial PUT 请求**(使用 `Content-Range` header)将恶意序列化的 Java 对象上传到 session 存储目录中。然后通过发送带有精心构造的 `JSESSIONID` cookie 的 GET 请求,Tomcat 会反序列化该对象并执行任意命令(前提是 classpath 中存在反序列化 gadget —— 例如 `commons-collections`)。
## 🎯 受影响版本
- Apache Tomcat 9.0.90
- Apache Tomcat 10.1.34
- Apache Tomcat 11.0.2
如果存在相同的配置错误,更早的版本也可能受到漏洞影响。
## 🔧 前置条件
### 目标机器
- Docker & Docker Compose
- Git
### 攻击机器
- Python 3
- `pip`(用于安装 `requests` 库)
- Java 运行时(用于运行 `ysoserial`)
- `netcat` (`nc`)
- `curl`
## 🚀 快速开始(实验环境搭建)
### 1. 构建带有漏洞的 Tomcat 容器(目标机器)
```
git clone https://github.com/beyond-devsecops/CVE-2025-24813.git
cd CVE-2025-24813
chmod +x 0-run-tomcat.sh
bash 0-run-tomcat.sh
```
标签:Apache Tomcat, CISA项目, Docker, JS文件枚举, Maven, 反序列化, 安全防御评估, 应用安全, 漏洞验证, 版权保护, 编程工具, 请求拦截, 远程代码执行, 逆向工具