
Proof-of-concept exploit for Apache Struts S2-072 (CVE-2026-73633), demonstrating CPU and memory exhaustion by sending crafted JSON requests to the Struts JSON plugin.
来自服务端启用 JSON body插件的JSON 填充("JSON填充"是Struts 2中JSON插件提供的一项核心功能,可以简单地理解为一种自动的数据转换机制。)
JSON 填充功能的解析器在处理JSON数组时,一次性把所有的请求体的json内容读取到内存(逐项装载)
造成内存消耗(和cpu消耗)
我使用wsl2和tomcat部署Struts应用,做了一个登录页面,用户名admin 密码123456
实际测试中,电脑增涨最明显的是cpu占用,其次是内存,并且请求处理完成之后,cpu占用会释放
内存一旦OOM就会触发GC回收,永远不会把内存占满,远远没有造成崩溃
只造成的容器的服务器资源紧张,涨到一个内存占用固定数值(OOM触发点)之后就不会再涨,会被GC重复回收再占用,再回收…………
cpu增长和填充值(--size)成正比
git clone https://github.com/CuteeCat/CVE-2026-73633.git
cd CVE-2026-73633
cd docker
docker-compose build
docker-compose up -d
cd ..
python poc.py --url http://127.0.0.1:8080/login.action --local