
Exploit de prova de conceito para a vulnerabilidade de negação de serviço no plugin JSON do Apache Struts (CVE-2026-73633), demonstrando esgotamento de CPU e memória por meio de arrays JSON elaborados.
O preenchimento JSON do plugin JSON body habilitado no servidor (o “preenchimento JSON” é um recurso central fornecido pelo plugin JSON no Struts 2, que pode ser entendido simplesmente 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 de uma só vez para a memória (carregamento item por item)
causando consumo (e consumo de CPU)
Usei wsl2 e tomcat para implantar um 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 perceptível no computador foi no uso de CPU, seguido pela memória. Além disso, após o término da requisição (conexão TCP encerrada), apenas o uso de CPU é liberado; a memória não é liberada automaticamente
(com a configuração padrão, o teste durou 3 minutos; o uso de CPU do host subiu de 7 para 32, e a memória, de 9,8 GB para 11 GB) — longe de causar um travamento
Isso apenas causou escassez de recursos do servidor no contêiner; quando o uso de memória atinge um valor fixo, ele para de subir. Esse valor fixo é proporcional ao valor de preenchimento (--size)