
Exploit de prova de conceito para Apache Struts S2-072 (CVE-2026-73633), que demonstra exaustão de CPU e memória ao enviar solicitações JSON forjadas para o plugin JSON do Struts.
O preenchimento JSON vem do plugin de corpo JSON habilitado no servidor ("preenchimento JSON" é um recurso central fornecido pelo plugin JSON do Struts 2, que pode ser simplesmente entendido como um mecanismo automático de conversão de dados.)
Ao processar arrays JSON, o parser do recurso de preenchimento JSON lê todo o conteúdo JSON do corpo da requisição para a memória de uma só vez (carregando item por item)
Causando consumo de memória (e consumo de CPU)
Usei WSL2 e Tomcat para implantar o aplicativo Struts e criei uma página de login com o nome de usuário admin e a senha 123456
Nos testes reais, o aumento mais evidente no computador foi o uso de CPU, seguido pela memória, e, após a conclusão do processamento da requisição, o uso de CPU é liberado
Quando a memória atinge OOM, a coleta de GC é acionada; a memória nunca fica totalmente ocupada, estando longe de causar um colapso
Isso apenas causa contenção dos recursos do servidor no contêiner; depois que o uso de memória sobe até um valor fixo (o ponto de disparo de OOM), ele não sobe mais, sendo repetidamente coletado pelo GC, ocupado novamente e coletado novamente…………
O crescimento da CPU é proporcional ao valor de preenchimento (--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